2011-08-15 14 views
8

मैं हालिया एफबी PHP एसडीके से गैर-जेएस उदाहरण का उपयोग कर रहा हूं। यह ठीक काम करता है, सिवाय इसके कि जब कोई उपयोगकर्ता अपने ब्राउज़र को बंद कर देता है और पृष्ठ को फिर से खोलता है। उन्हें फिर से एफबी लॉगिन लिंक पर क्लिक करना होगा।फेसबुक PHP एसडीके, लगातार लॉगिन को बनाए रखने के लिए कैसे करें

मैं अनुमान लगा रहा था कि $ facebook-> getUser() कुकीज़ को संभालती है।

कोड:

 require 'sdk/facebook/src/facebook.php'; 
     $facebook = new Facebook(array(
     'appId' => 'test', 
     'secret' => 'test', 
     'cookie' => true)); 


// Get User ID 
$user = $facebook->getUser(); 

// We may or may not have this data based on whether the user is logged in. 
// 
// If we have a $user id here, it means we know the user is logged into 
// Facebook, but we don't know if the access token is valid. An access 
// token is invalid if the user logged out of Facebook. 

if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

// Login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(); 
} 

?> 

वहाँ एक अतिरिक्त कदम मैं यहाँ याद कर रहा हूँ है? मुझे यहां एफबी कुकीज़ से डेटा खींचने के लिए कोड मिला: facebook auto re-login from cookie php

स्पष्ट रूप से एसडीके के साथ अब इसकी आवश्यकता नहीं है?

उत्तर

2

क्लाइंट-साइड के बिना करना संभव नहीं है।

आपकी स्क्रिप्ट में यह जानने के लिए पर्याप्त जानकारी नहीं है कि उपयोगकर्ता ने पृष्ठ का अनुरोध किया था।

और कुकीज़ के साथ कुछ भी करना संभव नहीं है, क्योंकि फेसबुक सत्र एक गतिशील स्थिति है जो फेसबुक सर्वर पर संग्रहीत है। इसलिए जेएस एसडीके का उपयोग करने का एकमात्र संभावित तरीका, वर्तमान सत्र प्राप्त करें और इसे सर्वर-साइड पर उपयोग करें।

संबंधित मुद्दे

 संबंधित मुद्दे