FB पेज की जानकारी खींचने के लिए सर्वर के लिए लंबे समय से स्थायी एफबी एक्सेस-टोकन


114

मुझे पता है कि फेसबुक एक्सेस-टोकन और उनके कारण होने वाले दु: ख के बारे में कई सवाल हैं, लेकिन बहुत प्रयोग करने और कई निराशाजनक ब्लॉग लेखों (एफबी और अन्यथा) को पढ़ने के बावजूद, मैं अभी भी अपनी आवश्यकताओं का स्पष्ट जवाब पाने के लिए संघर्ष कर रहा हूं। । मुझे अब तक अपनी प्रक्रिया को पूरी तरह से तोड़ने दें:

  • मैं एक साइट बना रहा हूं, जो सर्वर-साइड, एक ही फेसबुक पेज से पोस्ट / स्टेटस खींचने की जरूरत है
  • मैं उस फेसबुक पेज का एडमिन हूं
  • मैंने एक फेसबुक ऐप बनाया है
  • फेसबुक ग्राफ एपीआई एक्सप्लोरर का उपयोग करते हुए , मैंने अपने ऐप और मेरे खाते से जुड़ी एक अल्पकालिक कुंजी उत्पन्न की है, जो मेरे पृष्ठों की एक्सेस-टोकन देखने के लिए मेरे खाते को अनुमति देता है
  • मैं से (60 दिन) लंबे समय तक रहा कुंजी करने के लिए अपने अल्पकालिक कुंजी आला परिदृश्य 4 परिवर्तित कर दिया है यह

और यहाँ मैं कहाँ फंस गया हूँ। मेरे सर्वर के लिए पृष्ठ से आवश्यक जानकारी खींचने के लिए मेरी 60 दिन की कुंजी ठीक काम करती है, लेकिन जहां तक ​​मैं बता सकता हूं, उस कार्यक्रम को 60 दिन की कुंजी देने का कोई तरीका नहीं है। मुझे फेसबुक ग्राफ एपीआई एक्सप्लोरर को मैन्युअल रूप से जाने और एक बनाने के बिना एक नई अल्पकालिक कुंजी उत्पन्न करने के तरीके का भी पता नहीं है।

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

या मुझे कुछ याद आ रहा है?

अपडेट करें:

चरण-दर-चरण गाइड जो पहले यहां पाया गया था, अपने स्वयं के उत्तर में माइग्रेट कर दिया गया है ।


यह कमाल का है। मैं उसी स्थिति में हूं और इस विषय पर कुछ जानकारी ढूंढ रहा हूं। क्या यह सुरक्षित है कि यह टोकन किसी भी FB प्लेटफ़ॉर्म नीतियों को नहीं तोड़ता है? बस सुनिश्चित करने के लिए कह रहा हूं।
onigunn

2
@asrijaal फेसबुक के स्वयं के प्रलेखन (परिदृश्य 5 पर एक नज़र डालें) का कहना है कि ये पेज एक्सेस टोकन समाप्त नहीं होते हैं। मैं कहूंगा कि यह मान लेना सुरक्षित है कि वे फेसबुक की नीतियों का अनुपालन करते हैं।
redhotvengeance

"मैंने सोचा कि यह एक स्पष्ट कदम-दर-चरण प्रक्रिया को छोड़ना अच्छा होगा" - स्वर्ग न करे :) धन्यवाद @redhotvengeance
स्टीव मैकगिल

आपके पास अपने पृष्ठ पहुंच टोकन url के साथ एक टाइपो है। एक होना चाहिए? खातों के बाद नहीं। यह काम क्यों नहीं कर रहा था, यह जानने की कोशिश करते हुए कुछ समय बिताया। : पी
जोरेन

@ जॉर्नन तथ्य - अब यह तय हो गया है। धन्यवाद!
redhotvengeance

जवाबों:


188

ये ऐसे चरण हैं जो पहले प्रश्न में थे - वे इस उत्तर में स्थानांतरित कर दिए गए हैं।

पाया गया कि फेसबुक पेज एक्सेस टोकन जेनरेट करना संभव है, जो समाप्त नहीं होता (@ आईआईजी से मदद के साथ), यहां उन सभी के लिए एक स्पष्ट, चरण-दर-चरण क्विड है जो समान दिख रहे हैं:

  1. सुनिश्चित करें कि आप जिस FB पृष्ठ से जानकारी खींचना चाहते हैं, उसके व्यवस्थापक हैं
  2. एक एफबी ऐप बनाएं (पेज व्यवस्थापक के समान उपयोगकर्ता खाते के साथ होना चाहिए)
  3. फेसबुक ग्राफ एपीआई एक्सप्लोरर के लिए प्रमुख
  4. शीर्ष दाईं ओर, "एप्लिकेशन" ड्रॉप डाउन सूची से आपके द्वारा बनाई गई एफबी ऐप का चयन करें
  5. "गेट एक्सेस टोकन" पर क्लिक करें
  6. सुनिश्चित करें कि आप manage_pagesअनुमति जोड़ें
  7. इस अल्पकालिक एक्सेस टोकन को इस ग्राफ़ एपीआई कॉल के द्वारा लंबे समय तक चलने वाले एक में परिवर्तित करें: https://graph.facebook.com/oauth/access_token?client_id=<your FB App ID >&client_secret=<your FB App secret>&grant_type=fb_exchange_token&fb_exchange_token=<your short-lived access token>
  8. वापस लौटे नए लंबे समय तक पहुँच टोकन को पकड़ो
  9. नए लंबे समय तक पहुँच टोकन का उपयोग करके अपने खातों को देखने के लिए एक ग्राफ़ एपीआई कॉल करें: https://graph.facebook.com/me/accounts?access_token=<your long-lived access token>
  10. access_tokenउस पृष्ठ के लिए पकड़ो जिसे आप जानकारी खींच रहे हैं
  11. एक प्रकार का वृक्ष को देखने के लिए यह करने के लिए सेट कर दिया जाता है कि टोकन Expires: Never!

इससे हो जाना चाहिए। अब आपके पास एक फेसबुक पेज एक्सेस टोकन होना चाहिए जो कि समाप्त नहीं होता है, जब तक कि:

  • आप अपना फेसबुक अकाउंट पासवर्ड बदलें
  • आप लक्ष्य पृष्ठ के लिए व्यवस्थापक पहुँच खो देते हैं
  • आप अपने फेसबुक ऐप को डिलीट या डी-ऑथराइज़ करते हैं

इनमें से कोई भी पहुंच टोकन अमान्य हो जाएगा।

यदि आप प्राप्त कर रहे हैं (#100) Tried accessing nonexisting field (accounts) on node type (Page), तो एक्सेस टोकन डिबगर पर जाएं , मान को कॉपी करें User IDऔर चरण 9 में URL के "मुझे" भाग को बदलने के लिए इसका उपयोग करें।


2
मैं चरण 6 कैसे और कहाँ करूँ?
स्टीफन म्यूलर

5
@ StefanMüller जब आप ग्राफ़ एपीआई एक्सप्लोरर पृष्ठ पर "गेट एक्सेस टोकन" पर क्लिक करते हैं, तो एक "अनुमतियाँ" संवाद पॉप अप होता है। manage_pagesविकल्प के अंतर्गत है Extended Permissionsटैब।
redhotvengeance

2
महान! यह एक आकर्षण की तरह काम करता है, और यह पृष्ठ के रूप में प्रकाशित होता है, उपयोगकर्ता के रूप में नहीं।
बेंजामिन पीटर

3
मेरा मानना ​​है कि यह अब दिनांकित है। और आपको केवल एक टोकन मिलता है जो लगभग दो महीने में समाप्त हो जाता है।
क़ैसर वली

7
मैंने अब वह सब कर लिया है और यह काम करता है सिवाय इसके कि लंबे समय तक टोकन आईडी 2 महीने के बाद समाप्त हो जाती है और अनंत नहीं है। इसके अलावा, एक्सेस टोकन डिबगर के पास लंबे समय तक पहुंच वाले टोकन तक अल्पकालिक पहुंच टोकन का विस्तार करने के लिए फ़ॉर्म के निचले भाग में एक लिंक है।
स्लिमिट ऑक्ट

15

यह ऑफलाइन एक्सेस डेप्रिसिएशन डॉक्यूमेंट में कवर किया गया है

पृष्ठ एक्सेस टोकन प्राप्त करने के लिए पृष्ठ व्यवस्थापक के लिए 60-दिवसीय टोकन का उपयोग करें (के माध्यम से /PAGE_ID?fields=access_tokenया /me/accounts) - पृष्ठ पहुंच टोकन का समय समाप्त नहीं होगा


5
आह। दरअसल, यह टिकट लगता है। मैं शपथ ले सकता था कि मैंने इन चरणों के हर संभव संयोजन की कोशिश की - जाहिर तौर पर मैंने उस एक को याद किया जो वास्तव में काम करता है। क्या आवश्यक कार्यों का एक बिल्कुल दृढ़ सेट है। आपकी मदद के लिए बहुत धन्यवाद!
redhotvengeance

1
इंटरनेट पर इतने सारे टुकड़े, यह एक है जो वास्तव में काम करता है।
अर्नेस्टो

क्या page_access_tokenजावास्क्रिप्ट में कोड द्वारा इस 60 दिनों को प्राप्त करने के लिए कोई रास्ता मौजूद है ? पाने के तरीके की तरह user_access_token> FB.getAuthResponse()['accessToken'];धन्यवाद!
ट्यूलोन

3

एक दृष्टिकोण जो 2019 में काम करता है

मैं हाल ही में कुछ इसी तरह (इस थ्रेड में वर्णित उपयोग के मामले में) हासिल करने की कोशिश कर रहा था, लेकिन मैं फेसबुक की मौजूदा नीतियों का सम्मान करना चाहता था, इसलिए मैंने थोड़ा शोध किया और यहां जो मुझे मिला उसे साझा कर रहा हूं।

मेरा उपयोग मामला

इसलिए, जैसा कि मैंने पहले ही कहा था, मेरा उपयोग मामला यहाँ वर्णित के समान है; अर्थात्:

  • मैं एक स्कूल जिले के लिए कुछ काम कर रहा हूँ।
  • वे एक सॉफ्टवेयर उपकरण का उपयोग कर रहे हैं जो स्कूल परिवहन से संबंधित है।
  • जब वे बस देरी अलर्ट और स्कूल बंद अलर्ट प्रकाशित करते हैं तो यह टूल उन्हें ईमेल सूचनाएं (ग्राहकों को) भेजने की अनुमति देता है।
  • समुदाय के बहुत से लोग अपने फेसबुक पेज पर संगठन का अनुसरण करते हैं, और यह एकमात्र स्थान है जहां वे उन अलर्टों की तलाश करते हैं।
  • इसलिए संगठन के एक कर्मचारी को फेसबुक पेज पर प्रत्येक सूचना को मैन्युअल रूप से प्रकाशित करना होगा (परिवहन सॉफ़्टवेयर में इसे बनाने के अलावा)। इसके अलावा, वे सूचनाएं अंततः समाप्त हो जाती हैं (या बस समाप्त होने से पहले उन्हें हटा दिया जाता है), इसलिए कर्मचारी को बाद में उन्हें मैन्युअल रूप से हटाने के लिए बाद में वापस जाना होगा।
  • यह समय की एक कमर है, इसलिए हम यहां क्या करने की कोशिश कर रहे हैं, यह सरल प्रणाली के रूप में विकसित करना है जो समय-समय पर नए (और समय सीमा समाप्त) सूचनाओं के लिए सॉफ्टवेयर टूल के डेटाबेस को प्रदूषित करता है और उन्हें फेसबुक पेज पर अपडेट करता है (यानी जोड़ और हटाता है)।

यह मेरे विचार में, एक वैध उपयोग का मामला है, लेकिन मुझे यकीन नहीं था कि इसे फेसबुक की नीतियों के अनुरूप कैसे लागू किया जाए।

स्वीकृत उत्तर

मैंने स्वीकृत उत्तर के चरणों का पालन किया और यह काम किया, सिवाय इसके कि चीजें बदल गई हैं: अब, भले ही उत्पन्न पृष्ठ टोकन समाप्त नहीं access to dataहोता है , लगभग 60 दिनों के बाद समाप्त होता है। आप देखेंगे कि यदि आप प्रक्रिया का पालन करते हैं और एफबी टोकन डिबगर टूल में पृष्ठ टोकन का निरीक्षण करते हैं ।

इसके अलावा, यह तथ्य कि जेनरेट किया गया पेज टोकन उपयोगकर्ता खाते से जुड़ा है, यह भी दुर्भाग्यपूर्ण है, क्योंकि यदि उपयोगकर्ता अपना पासवर्ड अपडेट करता है, तो पेज टोकन भी अमान्य हो जाता है।

2019 में कैसे करें

कई घंटों के शोध के बाद, मैंने निम्नलिखित फेसबुक प्रलेखन लेख पर ठोकर खाई: प्रत्यक्ष व्यवसाय के लिए व्यावसायिक लॉगिन

यह पता चला है कि यह अब संभव है, उपरोक्त लेख में वर्णित चरणों का पालन करते हुए, एक पृष्ठ टोकन उत्पन्न करने के लिए जो किसी विशेष फेसबुक उपयोगकर्ता खाते से जुड़ा नहीं है और जो समाप्त नहीं होगा (जब तक कि एफबी ऐप हटा नहीं जाता है या अंतर्निहित एप्लिकेशन टोकन हटा दिया जाता है, तुम्हें पता है ...)

तो यहाँ कदम और सबसे महत्वपूर्ण भाग हैं:

  • आपको एक व्यवसाय प्रबंधक खाता चाहिए।
    • सत्यापन की आवश्यकता होगी और एक डिजिटल अनुबंध पर हस्ताक्षर करना होगा।
  • आपको उस खाते में लक्ष्य फेसबुक पेज जोड़ना होगा।
  • आपको एक फेसबुक ऐप बनाने की ज़रूरत है, और उस ऐप को उसी बिजनेस मैनेजर अकाउंट में भी ट्रांसफर करना होगा।
  • एप्लिकेशन को फेसबुक की समीक्षा प्रक्रिया से गुजरना होगा, क्योंकि निम्नलिखित अनुमतियों की आवश्यकता होगी: manage_pagesऔर publish_pages
    • महत्वपूर्ण नोट एप्लिकेशन प्रशासक के अलावा अन्य उपयोगकर्ताओं को दिखाई देने के लिए उत्पन्न पृष्ठ टोकन का उपयोग करने वाले पदों के लिए, उस ऐप को प्रकाशित और अनुमोदित करना होगा।
    • आप अभी भी समीक्षा के लिए प्रस्तुत किए बिना अवधारणा के साथ प्रयोग कर सकते हैं, लेकिन पोस्ट सार्वजनिक रूप से दिखाई नहीं देंगे।
  • व्यवसाय प्रबंधक खाते में (आपके ऐप और पृष्ठ को खाते में जोड़े जाने के बाद ही), आपको यह बनाने की आवश्यकता है कि सिस्टम उपयोगकर्ता को क्या कहा जाता है , और उस उपयोगकर्ता व्यवस्थापक की भूमिका (या अनुमतियाँ) फेसबुक पेज को लक्षित करें।
    • एक सिस्टम उपयोगकर्ता व्यवसाय प्रबंधक खाते के स्वामित्व में है, और एक विशिष्ट उपयोगकर्ता से बंधा नहीं है। मेरी वर्तमान समझ यह है कि एक प्रणाली उपयोगकर्ता के लिए एक प्रमुख उपयोग मामला फेसबुक के ग्राफ एपीआई (बस हमें क्या चाहिए) के लिए प्रोग्रामेटिक एक्सेस है।
  • फिर, उस सिस्टम उपयोगकर्ता के लिए, आपको एक एक्सेस टोकन उत्पन्न करना होगा (जो कभी समाप्त नहीं होगा)। आपको किस एप्लिकेशन के लिए चयन करने के लिए प्रेरित किया जाएगा। फिर आप अपना लक्ष्य ऐप चुनेंगे।
  • फिर आपको पेज टोकन जनरेट करने के लिए जेनरेट किए गए ऐप टोकन का उपयोग करना होगा, जो कभी भी समाप्त नहीं होगा। इस लेख में इस प्रक्रिया का वर्णन किया गया है:
GET /<PAGE_ID>?fields=access_token&access_token=<SYSTEM_USER_ACCESS_TOKEN>
  • बस।

यह टोकन कभी भी समाप्त नहीं होगा, और यह किसी विशेष फेसबुक उपयोगकर्ता से बंधा नहीं होगा, इसलिए यह वास्तव में हमारी आवश्यकता है!

अंतिम भाग यह सुनिश्चित करना है कि आपका फेसबुक ऐप फेसबुक द्वारा अनुमोदित हो। यह वास्तव में सबसे महत्वपूर्ण हिस्सा है, क्योंकि पूरी प्रक्रिया बेकार है अगर लोग हमारे पोस्ट नहीं देखते हैं।

मैं यह जानना चाहता था कि मैं फेसबुक के बिना अपने क्लाइंट के लिए कुछ बनाने के लिए उपरोक्त प्रक्रिया पर भरोसा कर सकता हूं, अंत में इसे अस्वीकार कर सकता हूं, इसलिए, पहले से (यानी मेरे क्लाइंट के प्रोजेक्ट पर काम शुरू करने से पहले), मैं पूरी प्रक्रिया से गुजरा एक पृष्ठ, एक ऐप, एक व्यवसाय प्रबंधक खाता, आदि बनाकर मैंने अपना व्यवसाय सत्यापित किया। मैंने समीक्षा के लिए अपना एप्लिकेशन प्रस्तुत किया। मेरे अनुरोध में, मैं अपने उपयोग के मामले के बारे में बहुत विशिष्ट था और इस बात पर जोर दिया कि ऐप "स्व-उपयोग" के लिए था (यानी कि संगठन स्वयं के लिए एक ऐप विकसित कर रहा है, अन्य फेसबुक उपयोगकर्ताओं के लिए नहीं)। मुझे 24 घंटे से कम समय में मंजूरी मिल गई।

एप्लिकेशन समीक्षा प्रक्रिया के बारे में कुछ अन्य नोट्स:

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

मुझे उम्मीद है कि यह जानकारी समान उपयोग के मामलों वाले लोगों के लिए उपयोगी होगी।


1

चरण-दर-चरण मार्गदर्शिका के लिए @redhotvengeance को बहुत धन्यवाद।

कुछ समय बाद, अब फेसबुक दस्तावेज़ में स्पष्ट रूप से वर्णित है:

https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension

पेज एक्सेस के विस्तार

जब वे manage_pages अनुमति से प्रमाणित होते हैं, तो पृष्ठ पृष्ठ व्यवस्थापक उपयोगकर्ताओं से पृष्ठ एक्सेस टोकन प्राप्त कर सकते हैं। यदि इस पृष्ठ का उपयोग करने वाले टोकन को पुनः प्राप्त करने के लिए उपयोग किए जाने वाला उपयोगकर्ता टोकन अल्पकालिक है, तो पृष्ठ एक्सेस टोकन भी अल्पकालिक होगा।

एक लंबे समय तक जीवित पृष्ठ टोकन प्राप्त करने के लिए, उपर्युक्त के रूप में, लंबे समय तक एक के लिए उपयोगकर्ता पहुंच टोकन का आदान-प्रदान करें, और फिर पृष्ठ पहुंच टोकन का अनुरोध करें। परिणामी पृष्ठ एक्सेस टोकन का कोई समाप्ति समय नहीं होगा।


0

आप फेसबुक पर ऐप डैशबोर्ड से कॉपी और पेस्ट भी कर सकते हैं। कदम:

  1. Https://developers.facebook.com पर जाएं

  2. पृष्ठ के ऊपरी दाएं कोने में अपना एप्लिकेशन चुनें (यह कैसा दिखता है, इसका चित्र)

  3. बाईं ओर के विकल्पों में से मैसेंजर पर क्लिक करें (यह स्वचालित रूप से सेटिंग में जाएगा) (जो जैसा दिखता है उसका चित्र)
  4. पृष्ठ में "टोकन जेनरेशन" अनुभाग पर जाएं। उस पृष्ठ का चयन करें जिसके लिए आप टोकन बनाना चाहते हैं। (उस खंड का चित्र कैसा दिखता है)
  5. अपने पृष्ठ के टोकन को कॉपी और पेस्ट करें जहां कभी भी आपको इसकी आवश्यकता होती है।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.