मैं नए ग्राफ एपीआई के मेरे पुराने अमेरिकन प्लान एप्लिकेशन पलायन कर रहा हूँ PHP APIकैसे जाँच करने के लिए उपयोगकर्ता नए फेसबुक php एपीआई
का उपयोग कर से प्रवेश करने वाले मैं दो पृष्ठों है यदि: सार्वजनिक (जो कोई भी उपयोगकर्ता लॉगिन की आवश्यकता होती है) और निजी लोगों को (जो करते हैं)
तो अपने आवेदन में हर php पृष्ठ के कोड इस प्रकार काम करता है:
if (this_page_requires_user_login){
$facebook = new Facebook(...) ;
$session = $facebook->getSession ;
if (!$session){
$url =$facebook.getLoginUrl(array(next => current_page);
echo "<fb:redirect url=$url/>" ;
}
// the rest of the code continues here
अब के रूप में आप देख सकते हैं, लॉगिन यूआरएल को आगे हर पृष्ठ काम करने का इस तरह से और यह काम करता है, यह भी धीमा है औरजोड़ता हैसत्र = {bla} स्ट्रिंग बहुत एकल यूआरएल के लिए।
मुझे यह जांचने का एक तरीका चाहिए कि उपयोगकर्ता लॉग इन पेज पर रीडायरेक्ट करने से पहले उपयोगकर्ता पहले से लॉग इन हो। लेकिन मुझे php api में ऐसी विधि नहीं मिल रही है। ऐसा करने का सबसे अच्छा तरीका क्या है?
संपादित
यह मैं अपना कोड सही पढ़ रहा हूँ, सिर्फ तभी जब कोई सत्र दिया जाता है तो आप रीडायरेक्ट कर रहे हैं तो चाल
if ($session) {
try {
$me = $facebook->api('/me');
if ($me) {
// here comes your code for user who is logged in
}
} catch (FacebookApiException $e) {
login()
}
}else{
login()
}
function login(){
$url =$facebook.getLoginUrl(array(next => current_page);
echo "<fb:redirect url=$url/>" ;
}
आप टोकन पहुँच संग्रहीत किया है और यह प्रयोग कर रहे हैं, यह काम नहीं करता है, क्योंकि API कॉल अभी भी एक अपवाद फेंकने के बिना काम करता है, लेकिन फिर जब आप उदाहरण के लिए getLogoutUrl करने के लिए उन्हें अनुप्रेषित, यह सिर्फ भेजता है उन्हें फेसबुक की होमपेज पर, आपको अपनी वेबसाइट – andrewtweber
@andrewtweber पर वापस भेजने की बजाय। धन्यवाद। –
आपको पहले यूआरएल डीकोड करना था, यही कारण है कि आपने रीडायरेक्ट नहीं किया: Php echo rawurlencode ($ logoutUrl); ?> –