2012-09-10 33 views
5

चूंकि फेसबुक ऑफ़लाइन_एक्सएएस अनुमति को हटा रहा है, इसलिए मैं नई प्रणाली का उपयोग करने के लिए हमारी वेबसाइट माइग्रेट करना चाहता हूं।आप फेसबुक ग्राफ एपीआई (सर्वर-साइड ऑथ) से लंबे समय तक पहुंचने वाले टोकन कैसे प्राप्त करते हैं?

मैं फेसबुक की वेबसाइट पर इस दस्तावेज़ पाया:

access_token => BLAHBLAHBLAHdontusemytokensilly 
expires => 4992 

जब मैं कोशिश और acces बिंदु का उपयोग करें: https://developers.facebook.com/roadmap/offline-access-removal

हालांकि, जब मैं सर्वर-साइड प्रमाणीकरण के साथ किसी की प्रक्रिया, मैं इस प्रतिक्रिया मिल (उस दस्तावेज़ पर) कुछ घंटे से अधिक तक पहुंच टोकन का विस्तार करने के लिए, मुझे यह वापस मिल जाता है:

access_token => BLAHBLAHBLAHdontusemytokensilly 
expires => 4990 

के अनुसार उस दस्तावेज़, सर्वर-साइड ओएथ को एक टोकन मिलना चाहिए जो 60 दिनों तक चलता है, मुझे समझ में नहीं आता कि मुझे वह वापस क्यों नहीं मिल रहा है।

मैं वास्तव में हमारे उपयोगकर्ताओं को ओएथ रीडायरेक्ट के माध्यम से हर 2 घंटे भेजना नहीं चाहता हूं।

कोई विचार? धन्यवाद!

सबसे पहले मैं यहाँ उपयोगकर्ता रीडायरेक्ट:

https://www.facebook.com/dialog/oauth?client_id=BLAHBLAH&redirect_uri=http%3A//localhost/user-social/facebook/redirect&scope=user_about_me%2Cuser_events%2Cuser_interests%2Cuser_likes%2Cfriends_likes%2Cuser_location%2Cuser_status%2Cuser_subscriptions%2Cfriends_subscriptions%2Cemail%2Ccreate_event%2Cpublish_stream%2Crsvp_event%2Cpublish_actions%2Cuser_actions.music%2Cfriends_actions.music%2Cuser_actions.news%2Cfriends_actions.news%2Cuser_actions.video%2Cfriends_actions.video%2Cmanage_pages

यह

अद्यतन

के रूप में अनुरोध किया है, यहाँ प्रवाह है कि मैं ले रहा हूँ (ब्राउज़र में) है उपयोगकर्ता को यहां रीडायरेक्ट करता है:

http://localhost/user-social/facebook/redirect?code=BLAHBLAHBLAHsomeawesomecode#_=_ 

तो मैं तो जैसे एक पहुँच टोकन का अनुरोध किया:

https://graph.facebook.com/oauth/access_token?client_id=BLAHBLAH&redirect_uri=http%3A//localhost/user-social/facebook/redirect&client_secret=BLAHBLAHsomeawesomesecret&code=BLAHBLAHBLAHsomeawesomecode

मैं फेसबुक से इस विश्राम प्राप्त करते हैं:

access_token=BLAHBLAHBLAHdontusemytokensilly&expires=4057 

यह obviosly एक अल्पकालिक टोकन है। फेसबुक प्रलेखन (उपरोक्त) के अनुसार, मुझे एक लंबे समय तक टोकन प्राप्त होना चाहिए था (क्योंकि मैं सर्वर-साइड ओएथ का उपयोग कर रहा हूं)।

https://graph.facebook.com/oauth/access_token?client_id=BLAHBLAH&redirect_uri=http%3A//localhost/user-social/facebook/redirect&client_secret=BLAHBLAHsomeawesomesecret&grant_type=fb_exchange_token&fb_exchange_token=BLAHBLAHBLAHdontusemytokensilly

यह वही है फेसबुक लौटे है:

हालांकि, बाद से यह अल्पकालिक है, मैं लंबे समय तक रहा टोकन के लिए यह व्यापार करने के लिए प्रयास किया

access_token=BLAHBLAHBLAHdontusemytokensilly&expires=3967 

ही ACCESS_TOKEN दोनों अनुरोधों में वापस किया जा रहा है।

अद्यतन 2

मैं Facebook Debugger में ऊपर पहुँच टोकन रख दिया और यह यह क्या लौट आए है:

App ID: 
BLAHBLAH 
User ID:  
211800900 : David Barratt 
Issued: 
Unknown 
Expires:  
1347303600 (in 40 minutes) 
Valid: True 
Origin: Web 
Scopes: create_event create_note email friends_actions.music friends_actions.news friends_actions.video friends_likes friends_subscriptions manage_pages photo_upload publish_actions publish_stream rsvp_event share_item status_update user_about_me user_actions.music user_actions.news user_actions.video user_events user_interests user_likes user_location user_status user_subscriptions video_upload 

अद्यतन 3

मेरी अनुमतियों के सभी हटाने के बाद और ऐप को फिर से अधिकृत करना (जैसा कि @phwd सुझाया गया है)। फेसबुक एपीआई यह देता है:

access_token=BLAHBLAHBLAHdontusemytokensilly 

क्या इसका मतलब यह है कि मुझे लंबे समय तक पहुंचने के लिए वापस कर दिया गया है? यदि हां, तो समाप्ति कहां है?

अद्यतन 4

जब मैं फेसबुक डीबगर के माध्यम से ऊपर ACCESS_TOKEN चलाने के लिए, मैं निम्नलिखित परिणाम प्राप्त:

App ID: 
BLAHBLAH 
User ID:  
211800900 : David Barratt 
Issued: 
1347309538 (39 minutes ago) 
Expires:  
Never 
Valid: True 
Origin: Web 
Scopes: create_event create_note email friends_actions.music friends_actions.news friends_actions.video friends_likes friends_subscriptions manage_pages photo_upload publish_actions publish_stream rsvp_event share_item status_update user_about_me user_actions.music user_actions.news user_actions.video user_events user_interests user_likes user_location user_status user_subscriptions video_upload 

इस मूल समस्या को ठीक करने लगता है, लेकिन यह है कि access_tokens अजीब बात है निर्धारित 60 दिनों तक चलने के बजाय अनिश्चित हैं।

कोई विचार क्यों है कि यह मामला क्यों हो सकता है?

उत्तर

2

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

देखें: https://developers.facebook.com/roadmap/offline-access-removal/

+2

मार रहा हो सकता है यह लंबे समय के रूप अप्रासंगिक है -लिखित एक्सेस टोकन 60 दिनों तक चलना चाहिए (मैंने जो सवाल पोस्ट किया है वह कहता है कि यह केवल कुछ घंटों तक चल रहा है)। –

1

फेसबुक के बाद से offline_access अनुमति निकाल रहा है, मैं आगे जाना है एक नई प्रणाली का उपयोग करने के लिए हमारी वेबसाइट पर स्थानांतरित करना चाहते हैं।

सुनिश्चित करें कि आप सक्षम अपने अनुप्रयोग के उन्नत सेटिंग्स में "offline_access अनुमति निकालें"

Advanced settings

अगर तुमने किया था, तो आप एक बग https://developers.facebook.com/bugs/378106708911903

+0

मैं पुष्टि कर सकता हूं कि "ऑफ़लाइन_कैस अनुमति निकालें" को "सक्षम" पर सेट किया गया है। –

+0

इसके अलावा, यह कैनवास ऐप नहीं है, यह एक वेबसाइट है, इसलिए मुझे यकीन नहीं है कि बग लागू होता है या नहीं। –

+0

@ डेविडबैरैट आपने 'HTTP DELETE/me/अनुमतियों' के साथ अनुमतियां निरस्त कर दी हैं और फिर से प्रयास कर रहे हैं, तो यह केवल कैनवास ऐप्स तक सीमित नहीं हो सकता है। मेरी सभी अनुमतियों को हटाने और फिर अधिकृत करने के बाद – phwd