2015-01-14 10 views
8

मैं फेसबुक पर एक छोटे समूह के व्यवस्थापक हूं, इसमें लगभग 40-50 सदस्य हैं। अब मैं समूह के लिए एक वेबपेज बना रहा हूं जो फेसबुक लॉगिन का उपयोग कर उपयोगकर्ताओं को अधिकृत करेगा (यदि यह मायने रखता है तो मैं लैरवेल + सैमिक के LaravelFacebookSDK का उपयोग कर रहा हूं)।समूह सदस्यों के लिए फेसबुक लॉगिन

सबकुछ ठीक काम करता है, हालांकि कोई समस्या है। मैं केवल उन लोगों के लिए लॉगिन प्रतिबंधित करना चाहता हूं जो फेसबुक समूह के सदस्य हैं। सबसे अच्छा तरीका/me/groups API का उपयोग करेगा, लेकिन इसके लिए user_groups अनुमति की आवश्यकता है, जो प्रतिबंधित है।

बेशक वहाँ 'हैकी' समाधान हैं जैसे प्रत्येक उपयोगकर्ता को मैन्युअल रूप से ऐप अंतर्दृष्टि उपयोगकर्ता को या एक स्क्रिप्ट लिखना जो मेरे सर्वर पर डेटाबेस अपडेट करता है जिसमें समूह के सदस्यों की सूची होती है, लेकिन वहां कोई नहीं है ऐसा करने के लिए सरल, सुरुचिपूर्ण तरीका?

मुझे अत्यधिक संदेह है कि फेसबुक मुझे इस के लिए user_groups अनुमति का उपयोग करने की अनुमति देगा।

+1

आप उन्हें मनाने की कोशिश कर सकते हैं यह उपयोगकर्ता अनुभव को बेहतर बनाएगा। अन्यथा हैकी समाधान के लिए जाएं :) – lsouza

+0

मैं एक ही बिंदु में हूं। फेसबुक को अधिकांश मामलों के लिए user_groups स्कोप की अनुमति देनी चाहिए। –

+0

नोटिस हर कोई - यह फेसबुक का एक ज्ञात बग है। "मदद" करने के लिए फेसबुक इसे ठीक करने का निर्णय लेता है, आपको सभी को इस बग की सदस्यता लेनी चाहिए और टिप्पणी करनी चाहिए कि आपको इसकी आवश्यकता है। यहां बग है: developers.facebook.com/bugs/267362886791339 – Shahar

उत्तर

1

ऐसा लगता है कि इस लक्ष्य को हासिल करने के लिए केवल एक अच्छा तरीका है की तरह:

हालांकि /me/groups की आवश्यकता है user_groups समूह को पुनर्प्राप्त करने की अनुमति उपयोगकर्ता का सदस्य है, यह इसके बिना समूह created by the app समूह लौटा सकता है (बशर्ते निश्चित रूप से वैध पहुंच टोकन दिया गया हो)।

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

संपादित करें: चलने वाले सदस्यों की संभावना नहीं है, एक ऐप समूह में शामिल होना केवल एसडीके का उपयोग करके प्रोग्रामिंग संभव है। इसलिए, जब कोई उपयोगकर्ता इस समूह का सदस्य नहीं होता है, तो मैं उन्हें शामिल होने के लिए कहूंगा। इसका मतलब है कि हर कोई शामिल हो सकता है और मुझे मैन्युअल रूप से उन लोगों को प्रतिबंधित करना है जिन्हें मैं पसंद नहीं करता हूं, बल्कि कम प्रचार के बजाय, मैं इससे निपट सकता हूं।

+1

"ऐप और गेम समूह बहिष्कृत हैं। नए ऐप्स के लिए एपीआई एक्सेस 1 मई, 2016 को बंद कर दिया जाएगा। गेम और ऐप समूह 17 अक्टूबर को सभी ऐप्स के लिए बहिष्कृत किए जाएंगे 2016, " –

2

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

$scope = ['email', 'user_status', 'user_groups']; // it is 'groups' or 'user_groups' 
$login_url = $fqb->auth()->getLoginUrl('http://my-callback/url', $scope); 

मैं के रूप में मैं हाथ में एक स्थापना की जरूरत नहीं है इस कोड का परीक्षण नहीं किया, है, लेकिन सब कुछ मैं सिर्फ पढ़ा से हैं, तो यह चाहिए काम है।

संपादित करें: लगभग भूल गया, तो आपको निम्न संकेतन का उपयोग कर अपने फेसबुक वस्तु से बाहर डेटा प्राप्त होगा:

$groups = $fqb->object('me/groups')->get(); 
+0

फेसबुक एपीआई दस्तावेज के मुताबिक, उपयोगकर्ता_ग्रुप अनुमति प्रतिबंधित है और तब तक नहीं दी जाएगी जब तक कि फेसबुक मेरे आवेदन की समीक्षा नहीं करता और स्पष्ट रूप से इसकी अनुमति देता है। – nXu

+0

दरअसल, मैंने अभी इसका परीक्षण किया है। हालांकि लॉगिन लिंक में स्कोप = user_groups है, यह केवल सार्वजनिक पृष्ठ की अनुमति मांगता है और जब मैं मुझे/समूह डेटा प्राप्त करने का प्रयास करता हूं, तो एक खाली सेट वापस कर दिया जाता है। – nXu

+0

फिर मैंने वहां दिशानिर्देशों का गलत व्याख्या किया। उसके लिए खेद है। – ricktap

0

हाँ यह लागू करने के लिए काफी "मजेदार" है। मुझे याद है कि ऐसा करने में सक्षम होना, लेकिन दुर्भाग्य से मदद करने के लिए मेरे पास कोई विशिष्ट कोड नहीं है। मैं आपको बता सकता हूं कि इसे कई टोकन की आवश्यकता होगी।

उपयोगकर्ता के स्वयं के टोकन प्राप्त करें:

अगर मैं सही ढंग से याद है, इस तार्किक प्रवाह है।
फिर उपयोगकर्ता के टोकन का उपयोग करके समूह का टोकन।

और फिर आप उस डेटा को नियंत्रित करेंगे जिसे व्यक्ति को आपके आवेदन के भीतर से समूह को भेजने की अनुमति है।

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