2009-06-16 18 views
12

मैं उस क्लाइंट के लिए एक साइट विकसित कर रहा हूं जिसके पास पहले से ही फेसबुक पर अपने उत्पादों की तस्वीरें हैं, और वह वही एल्बम अपनी साइट पर दोहराना चाहता है। मैं पहले से ही फेसबुक कनेक्ट का उपयोग कर रहा था, इसलिए मैंने गतिशील रूप से दीर्घाओं को बनाने के लिए photos.getAlbums और photos.get का संयोजन छोड़ दिया।सार्वजनिक सामग्री के लिए क्लाइंट प्रमाणीकरण के बिना फेसबुक एपीआई

अभी तक इतना अच्छा है, लेकिन फिर मुझे एहसास हुआ कि यदि कोई उपयोगकर्ता लॉग इन एफबीसी लॉग नहीं है, तो कोई सत्र नहीं बनाया गया है और एपीआई सार्वजनिक रूप से उपलब्ध सामग्री के लिए भी अनुपयोगी हो जाती है। मैं स्पष्ट रूप से एल्बम को सभी लोगों को दिखाना चाहता हूं न केवल उन लोगों को जो अपने खाते को जोड़ते हैं।

क्या यह फेसबुक एपीआई में सभी कार्यों का काम करता है? इस स्थिति के लिए सबसे अच्छा (कार्यान्वित करने में आसान) कामकाज क्या है?

उत्तर

11

सितंबर 2010 तक, अब आप किसी भी उपयोगकर्ता के साथ एक आवेदन के रूप में प्रमाणित कर सकते हैं। विवरण के लिए http://developers.facebook.com/docs/authentication/ देखें। या फिर आप एक पहुंच टोकन प्राप्त करने के लिए इस उदाहरण कोड चला सकते हैं:

curl -F grant_type=client_credentials \ 
-F client_id=your_app_id \ 
-F client_secret=your_app_secret \ 
https://graph.facebook.com/oauth/access_token 
+0

धन्यवाद! यह अब सही जवाब है। दुर्भाग्यवश, – lima

+0

दुर्भाग्यवश, यह लिंक अब फेसबुक लॉगिन के बारे में एक काफी बेकार पृष्ठ पर रीडायरेक्ट करता है। ऐसा लगता है कि लॉगिन के प्रचार में, वे इसे कम स्पष्ट कर रहे हैं कि यह "ऐप टोकन" विधि भी एक विकल्प है। हालांकि, यह अभी भी दिखाया गया है [यहां] (https://developers.facebook.com/tools/access_token), जो आश्वस्त है। – nkorth

0

यह मुझे समझ में नहीं आता है - मेरे पास एक (अपेक्षाकृत सरल) ऐप है जो फेसबुक में प्रस्तुत करता है भले ही उपयोगकर्ता ने कभी फेसबुक में लॉग इन नहीं किया हो (जिस स्थिति में यह डेमो डेटा प्रदर्शित करता है)।

जब फेसबुक पीएचपी लाइब्रेरी का उपयोग कर, मैं सिर्फ ऐसा करते हैं:

$ फेसबुक = नए फेसबुक ($ api_key, $ गुप्त);

कोई सत्र आईडी आवश्यक नहीं है - लेकिन जाहिर है, उपयोगकर्ता के बारे में जानकारी पर निर्भर एपीआई कार्य काम नहीं करेंगे।

आप अपने ऐप के लिए "infinite session" पर भी देख सकते हैं - आप अपने लिए एक अनंत सत्र कुंजी बना सकते हैं और API का उपयोग करने के लिए उस सत्र का उपयोग कर सकते हैं।

+0

धन्यवाद, मैं स्पष्ट रूप से मेरे ऐप प्रदान कर सकते हैं (इस मामले में सिर्फ बैकएंड कोड है) एक उपयोगकर्ता सत्र के बिना, लेकिन मैं के किसी भी उपयोग नहीं कर सकते एपीआई फ़ंक्शन जो मुझे एल्बम से सामग्री खींचने देगा। "अनंत सत्र" विचार अच्छा लगता है, लेकिन इसे आंशिक रूप से बहिष्कृत किया गया है: http://wiki.developers.facebook.com/index.php/New_Design_Platform_Changes#Changes_to_Session_Keys – lima

3

रिकॉर्ड के लिए, मैं एक छोटे से बैकएंड है कि एक बार फेसबुक के लिए लॉग इन और अमेरिकन प्लान एप्लिकेशन को offline_accessextended permission देने के लिए ग्राहक की जरूरत होती विकसित करके इस स्थिति का समाधान करने में कामयाब रहे, तो मैं उसकी सत्र कुंजी बचाने के लिए और इसका इस्तेमाल प्रमाणित करने के लिए कर सकते हैं फेसबुक एपीआई क्लाइंट हर बार जब मुझे गैर-सार्वजनिक सामग्री प्राप्त करने के लिए FQL का उपयोग करने की आवश्यकता होती है।

फेसबुक में अनावश्यक अनुरोधों से बचने के लिए कोई भी बीच में कुछ कैशिंग जोड़ सकता है, लेकिन यह अब तक की किसी भी सीमा को मारने के बिना ठीक काम कर रहा है।

+0

शानदार उत्तर- ऐसा करने के लिए यह सबसे अद्यतित तरीका है । उत्सुकता से - आपने उपयोगकर्ता को प्रमाणित कैसे किया? मैं वर्तमान में फ्रंट एंड पर जेएस एसडीके का उपयोग कर रहा हूं, हालांकि मेरे ऐप (सीएमएस) के लिए मैं एक फेसबुक पेज पर पोस्ट प्रकाशित करना चाहता हूं जब एक संपादक अपनी वेबसाइट पर एक पोस्ट प्रकाशित करता है। (फिर पसंद/टिप्पणियों/आदि के लिए पोस्टआईडी स्टोर करें) आदर्श रूप में, मैं एक एफबी पेज व्यवस्थापक के लिए उपयोगकर्ता नाम/पीडब्ल्यू स्टोर करता हूं और अदृश्य रूप से आलेख एपीआई का उपयोग करता हूं। इसका कोई उदाहरण? धन्यवाद! – Jason

+0

जैसा कि कमीकर्ता कहता है, एफबी ऑथ योजना बदल गई। इसे समझने के अपने जवाब में लिंक और उदाहरण का पालन करें। मैं इसे सही के रूप में चिह्नित कर रहा हूं। – lima

+0

यहां एक अद्यतन लिंक है: https://developers.facebook.com/docs/facebook-login/permissions/v2.5#reference-extended। हालांकि, ऑफ़लाइन_एसीएएस अनुमति को बहिष्कृत कर दिया गया है: https: //developers.facebook।कॉम/डॉक्स/रोडमैप/पूर्ण-परिवर्तन/ऑफलाइन-एक्सेस-हटाने –

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