2012-10-03 15 views
10

मैं अगर यह पहुंच टोकन कि कभी नहीं मेरा पेज को इस पद के लिए समाप्त हो रहा है संभव है जानना चाहूंगामुझे एक पृष्ठ एक्सेस टोकन कैसे प्राप्त होता है जो समाप्त नहीं होता है?

अब मैं के साथ पहुंच टोकन प्राप्त:

https://graph.facebook.com/me/accounts 

मैं publish_stream और manage_pages अनुमति है, लेकिन Access Token Debugger का उपयोग करके मैं देखता हूं कि टोकन लगभग 1 घंटे में समाप्त हो जाता है। क्या कभी समाप्त होने का कोई तरीका नहीं है?

उत्तर

15

facebook developers देखें:

लंबे समय तक रहा उपयोगकर्ता पहुँच टोकन का उपयोग कर, क्वेरी करने [उपयोगकर्ता आईडी]/खातों तक endpoint अब पेज पहुंच टोकन कि पृष्ठों है कि एक के लिए समय सीमा समाप्त हो नहीं है प्रदान करेगा उपयोगकर्ता प्रबंधन करता है। कि longlived टोकन के माध्यम से/खातों

https://graph.facebook.com/oauth/access_token? 
client_id=APP_ID& client_secret=APP_SECRET& grant_type=fb_exchange_token& fb_exchange_token=EXISTING_ACCESS_TOKEN 

और फिर मुझे क्वेरी:

तो, आप एक सर्वर साइड कॉल के साथ एक longlived टोकन के लिए अपने प्रारंभिक अल्पकालिक टोकन का आदान प्रदान करने की है। निश्चित रूप से हमारे लिए काम करता है, यानी डिबगर शो: 'समय-सीमा समाप्त: कभी नहीं'


संपादित करें - हमारी प्रक्रिया

तो, हम क्या है:

  • के साथ पहली client side authentication हमारे ऐप जहां उपयोगकर्ता अनुरोधित अनुमतियों को स्वीकार करता है और उसके खाते को हमारे ऐप

    से जोड़ता है, तो हमें "कोड" वापस मिलता है? client_id = YOUR_APP_ID & redirect_uri = YOUR_REDIRECT_URI & गुंजाइश = COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES & response_type = कोड

  • अब हमारे सर्वर अनुप्रयोग में हम server side authentication का उपयोग पहुँच टोकन के लिए कोड का आदान प्रदान करने:

    https://graph.facebook.com/oauth/access_token? client_id = YOUR_APP_ID & redirect_uri = YOUR_REDIRECT_URI & client_secret = YOUR_APP_SECRET & कोड = CODE_GENERATED_BY_FACEBOOK

  • इस ACCESS_TOKEN हम के रूप में ऊपर

  • वर्णित सर्वर साइड विनिमय करना के साथ अब हम अनुरोध करते हैं मुझे/खातों और जिसके परिणामस्वरूप ACCESS_TOKEN हमेशा होता है वैध

आशा है कि मदद करता है

+1

धन्यवाद पीट, लेकिन जब मैं कि फोन करना मैं इस त्रुटि प्रतिक्रिया { " त्रुटि "है हुआ। ", " टाइप ":" ओएथएक्सप्शन ", " कोड ": 1 } } –

+0

EXISTING_ACCESS_TOKEN ऐप टोकन या पृष्ठ टोकन है? शायद मुझे कुछ याद आती है :( –

+2

@Pete: क्या आप सुनिश्चित हैं कि डीबगर 'समाप्त हो जाता है: कभी नहीं' क्योंकि मेरे लिए यह दिखाता है कि 'समाप्त हो जाता है: 1354445684 (लगभग 2 महीने में) ' – RanRag

1

ठीक है तो इसमें लगभग एक सप्ताह का शोध हुआ लेकिन मेरा समाधान यहां है। में सुनिश्चित करें कि आपके पास access_token के हिस्से के रूप में manage_page है।कि उपयोग आपके एप्लिकेशन id, गुप्त के साथ इस कोड, और के बाद पुन: निर्देशित:

<?php 
    app_id = "APP_ID"; 
    $app_secret = "APP_SECERET"; 
    $post_login_url = "REDIRECT_URL"; 


    $code = $_REQUEST['code']; 

    //Obtain the access_token with publish_stream permission 
    if(empty($code)){ 
     $dialog_url= "http://www.facebook.com/dialog/oauth?" 
     . "client_id=" . $app_id 
     . "&redirect_uri=" . urlencode($post_login_url) 
     . "&COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES"; 
     echo("<script>top.location.href='" . $dialog_url 
     . "'</script>"); 
    } 
    else { 


     $token_url="https://graph.facebook.com/oauth/access_token?" 
     . "client_id=" . $app_id 
     . "&redirect_uri=". urlencode($post_login_url) 
     . "&client_secret=" . $app_secret 
     . "&code=" . $code; 
     $response = file_get_contents($token_url); 
     $params = null; 
     parse_str($response, $params); 
     $access_token = $params['access_token']; 
     echo 'access token: ' . $access_token.'<br>'; 

     if($access_token){ 


      $token_url="https://graph.facebook.com/oauth/access_token?" 
     . "client_id=" . $app_id 
     . "&redirect_uri=". urlencode($post_login_url) 
     . "&client_secret=" . $app_secret 
     .'&grant_type=fb_exchange_token' 
     . "&fb_exchange_token=" . $access_token; 
     $response = file_get_contents($token_url); 
     $access_token = $params['access_token']; 
     echo 'new access token: '.$access_token; 

     } 
    }*/ 

?> 

कि नकल करने के बाद 'नई पहुँच टोकन' और उपयोग में वापस https://developers.facebook.com/tools/explorer/ करने के लिए जाना जब आप अपने नए पहुँच टोकन में पिछले वहाँ पाने के टोकन क्षेत्र फिर सबमिट करें पर क्लिक करें। उसके बाद नोड में आप एक + _ ___ देखेंगे और खातों पर स्क्रॉल करें और उस पर क्लिक करें। उस पृष्ठ को ढूंढें जिसके लिए आपको एक्सेस टोकन की आवश्यकता है और इसे कॉपी कुंजी फ़ील्ड में कॉपी और पेस्ट करें। डीबग पर क्लिक करें और आप देखेंगे कि यह कभी समाप्त नहीं होगा। उस टोकन को सहेजें जब तक कि आप अपने ऐप्स को रीसेट नहीं करते हैं, तब तक यह वैध रहेगा।

4

मैं पीट जवाब थोड़ा सरल किया है और एक गैर-सीमा समाप्त होने पेज पहुंच टोकन प्राप्त करने के लिए कदम जोड़ दिया है:

  1. पहुँच निम्न URL और ध्यान दें ब्राउज़र की पता पट्टी के भीतर लौट आए पहुँच टोकन:

    https://www.facebook.com/dialog/oauth?client_id=APP_ID&redirect_uri=REDIRECT_URI&scope=manage_pages,publish_stream&response_type=token

  2. पहुँच निम्न URL और दिए गए डेटा के भीतर वें लगता है ई पेज का नाम वांछित और पहुँच टोकन ध्यान दें:

    https://graph.facebook.com/me/accounts?access_token=ACCESS_TOKEN_RETURNED_FROM_STEP_1

  3. पहुँच निम्न URL और लौट आए पहुँच टोकन ध्यान दें:

    https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=PAGES_ACCESS_TOKEN_FROM_STEP_2

  4. उपयोग आपकी पहुंच टोकन सुनिश्चित करने के लिए Access Token Debugger प्रोफाइल आईडी इच्छित पृष्ठ की आईडी से मेल खाता है और यह कभी समाप्त नहीं होता

+0

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

0

आप फेसबुक से निम्नलिखित एपीआई का उपयोग कर सकते 60 दिनों के लिए टोकन जीवन ताज़ा करने के लिए और बस जब टोकन समाप्त होने को है, साथ में फिर से वही API कॉल 60 दिनों उस समय से वापस 60 दिनों के लिए अपने जीवन को ताज़ा करने के टोकन की समय सीमा समाप्त मौजूद है पैरामीटर समाप्त हो रहा है और इसके मूल्य सेकंड में है

उनके वास्तविक मूल्य

https://graph.facebook.com/oauth/access_token?client_id= & client_secret =साथ CLIENT_ID और cLIENT_SECRET बदलें में 10 grant_type = fb_exchange_token & fb_exchange_token =

ACCESS_TOKEN में

, जोड़कर बिना वास्तविक टोकन मान डाल "ACCESS_TOKEN ="

2

2016 के रूप में यह करने के लिए एक बहुत ही आसान तरीका :)


नहीं है
  1. https://developers.facebook.com/tools/explorer

  2. पर जाएं 10
  3. ऊपर दाहिने हाथ पक्ष

  4. क्लिक पर लटकती से अपना ऐप चुनें दाहिने हाथ की ओर

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

  6. क्लिक करें "पहुँच टोकन" इनपुट क्षेत्र

  7. में नीले विस्मयादिबोधक बिंदु आइकन क्लिक करें पॉपअप के निचली दाईं ओर बटन "पहुंच टोकन उपकरण में खोलें"

  8. "टोकन बढ़ाएं" बटन पर क्लिक करें टोकन प्राप्त करने के लिए कभी भी


इस लेख से मूल जानकारी: { "message": "एक अज्ञात त्रुटि है https://www.rocketmarketinginc.com/blog/get-never-expiring-facebook-page-access-token/

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

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