6

मैं ऐसी वेबसाइट बना रहा हूं जो फेसबुक कनेक्ट का उपयोग करे। मैं जावास्क्रिप्ट एसडीके के साथ उपयोगकर्ताओं क्लाइंट-साइड को प्रमाणित कर रहा हूं और हर बार जब कोई उपयोगकर्ता लॉग इन करता है कि यह जांचने के लिए उपयोगकर्ता लॉग इन करता है कि उपयोगकर्ता मेरे ऐप के लिए जाना जाता है, और यदि उपयोगकर्ता मेरे डेटाबेस में एफबीआईडी ​​स्टोर करने के लिए नया है, तो मैं अपने सर्वर पर एक AJAX विधि को कॉल कर रहा हूं। उन्हें एक नए उपयोगकर्ता के रूप में पंजीकृत करने के लिए।क्या फेसबुक द्वारा जावास्क्रिप्ट एसडीके वर्क सर्वर-साइड में PHP एसडीके के साथ एक एक्सेस टोकन लौटाया जा सकता है?

मेरा प्रश्न है: क्या जावास्क्रिप्ट एसडीके में फेसबुक द्वारा लौटाई गई एक्सेस टोकन सर्वर-साइड (उदाहरण के लिए PHP एसडीके के साथ) का उपयोग किया जा सकता है? क्या मैं एक AJAX कॉल के माध्यम से सर्वर पर एक्सेस टोकन स्ट्रिंग भेज सकता हूं, इसे अपने डेटाबेस में संग्रहीत कर सकता हूं (टाइमस्टैम्प के साथ, इसलिए मुझे पता है कि यह कब तक मान्य है) और उसके बाद ग्राफ़ एपीआई सर्वर-साइड पर कॉल करने के लिए इसका उपयोग करें? क्या यह भी एक तार्किक बात है?

उत्तर

3

हां, यह काम करना चाहिए। इस प्रश्न को देखें: How to properly handle session and access token with Facebook PHP SDK 3.0?

यह पुराने जेएस और नए PHP एसडीके के लिए एक कामकाज है। मेरे ऐप में मैं जेएस एसडीके द्वारा जेनरेट किए गए एक्सेस टोकन को अपने PHP में एक फॉर्म के माध्यम से भेजता हूं। मुझे कोई संदेह नहीं है कि यह AJAX के माध्यम से पहुंच टोकन भेजकर भी काम करता है!

3

सर्वर का उपयोग कर:

//Set an error message 
var oops = ("Put your something went wrong message here."); 
//Function to post the data to the server 
    function save(uid, accessToken){ 
     $.post("../foo/bar", { uid: uid, access_token: accessToken, etc, etc }, function(data){ 
      alert("Successfully connected to Facebook."); 
      location.reload(); 
     }, "text"); 
    } 
    function handler(x){ 
     if (x.authResponse){ 
      var token = x.authResponse.accessToken; 
      var uid = x.authResponse.id; 
      FB.api("/me/accounts", {access_token: token}, 
      function(response){ 
       if(response.data.length == 0) { 
//Regular facebook user with one account (profile) 
        save(uid, token); 
       }else{ 
//Handle multiple accounts (if you want access to pages, groups, etc) 
       } 
      }); 
     }else{ 
      alert(oops); 
     } 
    } 
    FB.login(handler, {scope: 'The list of permissions you are requesting goes here'}); 

किसी भी सुधार के लिए सुझावों हमेशा सराहना कर रहे हैं।

+0

मैं उत्सुक हूं कि आप मेरे कार्यान्वयन के बारे में क्या सोचते हैं। यह मेरे पृष्ठों का हेडर है: (जावास्क्रिप्ट एसडीके लोड करता है और उपयोगकर्ता लॉगिन/लॉगआउट का पता लगाता है) http://pastebin.com/sSR1zrfN और यह शामिल जावास्क्रिप्ट फ़ाइल है जो प्रत्येक उपयोगकर्ता लॉगिन/लॉगआउट के लिए मेरे सर्वर को कॉल करती है: http://pastebin.com/ET1C6deQ –

+0

पंक्तियों 60-70 पहली फ़ाइल में प्रासंगिक हैं। इस तरह मैं अपना उपयोगकर्ता लॉगिन/लॉगआउट पहचान कर रहा हूं। –