2011-02-08 15 views
21

मेरे पास एक ऐसा काम करने वाला फेसबुक ऐप है जो अधिकतर उपयोगकर्ता केवल एक बार उपयोग करेंगे। फेसबुक वर्कफ़्लो में अग्रणी, उपयोगकर्ता इंगित करते हैं कि क्या वे अपनी दीवार को लिखना चाहते हैं या नहीं। उस पर आधारित, मैं या तो publ_stream अनुमति मांगता हूं या नहीं।फेसबुक ऐप्स: अतिरिक्त अनुमतियां

बाद में, उपयोगकर्ताओं का एक छोटा प्रतिशत वापस आ जाएगा और ऐप का फिर से उपयोग करेगा। कुछ लोग जो पहले दीवार पर लिखना नहीं चाहते थे (और इस प्रकार मैंने publ_stream के लिए नहीं पूछा था) अब उनकी दीवार पर लिखना चाहते हैं।

उपयोगकर्ता ने पहले ही ऐप को अधिकृत करने के बाद अतिरिक्त अनुमति का अनुरोध कैसे किया?

इसी प्रकार, मैं किसी उपयोगकर्ता से यह पूछने के लिए कैसे क्वेरी कर सकता हूं कि वे कौन सी अनुमतियां पहले ही दे चुके हैं?

उत्तर

19

यह एक नया fb:login-button करने के लिए नए अनुमति जोड़ने के रूप में सरल है:

<fb:login-button scope="publish_stream"> 
    Let me write on your wall! 
</fb:login-button> 

इसलिए उदाहरण के लिए यदि आप ऊपर एक DIV में छिपा हुआ है और उपयोगकर्ता एक चेकबॉक्स आप DIV दिखाने टिकटिक और नए संकेत करता है, तो अनुमति!

एक अच्छा लाइव इस बात का उदाहरण Facebook Test Console पर है: लॉगिन

  1. क्लिक करें चुनें आवेदन
  2. फिर fb.api तहत examples
  3. पर क्लिक करें "जोड़ें" को does-like

अब आप देख सकते हैं कि * आवेदक से जुड़े होने के बाद भी आयन (टेस्ट कंसोल ऐप), आप वास्तव में उपयोगकर्ता को संकेत देने के लिए एक और लॉगिन बटन है!

संपादित करें: यदि उपयोगकर्ता आपके आवेदन को अनुमति प्रदान कर दी है
जाँच करने के लिए, बस इस FQL का उपयोग करें:

[ 
    { 
    "read_stream": 1, 
    "offline_access": 0 
    } 
] 

यह परीक्षण करने के लिए:

SELECT read_stream,offline_access FROM permissions WHERE uid=me() 

कुछ इस तरह वापसी होगी , बस पोस्ट कंसोल का उपयोग जल्दी पोस्ट करें।

संपादित करें 2:
XFBML या जावास्क्रिप्ट के बिना लिंक अपने आप का निर्माण करने के लिए, तुम सिर्फ अतिरिक्त perms साथ scope पैरामीटर (reference) जोड़ने की जरूरत:

https://www.facebook.com/dialog/oauth? 
    client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=publish_stream 

या यदि आपके प्रयोग कर रहे हैं PHP-SDK:

$loginUrl = $facebook->getLoginUrl(array(
    "scope" => "publish_stream" 
)); 
+1

मुझे लगता है कि आप लॉगिन-बटन उत्पन्न करने के लिए एफबीएमएल का उपयोग कर रहे हैं। PHP एसडीके और oauth_redirect विधि का उपयोग करते समय क्या? यही वह जगह है जहां यह अतिरिक्त अनुमतियों का सम्मान नहीं करता है। –

+0

@ScottC: मेरा उत्तर अपडेट किया गया। – ifaour

0

मैं इसे दूसरे दिन देख रहा था! यदि आप http://developers.facebook.com/docs/authentication के माध्यम से पढ़ते हैं, तो अतिरिक्त अनुमतियों का अनुरोध करने के लिए थोड़ा पॉपअप बॉक्स प्रदर्शित करने के कई अलग-अलग तरीके हैं।

मुझे यकीन नहीं है कि यह एक फेसबुक ऐप के साथ कैसे काम करता है, लेकिन मैं फेसबुक कनेक्ट का उपयोग कर वेबसाइट पर जानता हूं, अगर आप पहले से स्वीकार किए गए अनुमतियों का अनुरोध करने का प्रयास करते हैं, तो पृष्ठ स्वचालित रूप से redirect_url पर रीडायरेक्ट करता है आप सेट हैं।

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