2012-05-24 120 views
0

可能重複:
How to extend access token validity since offline_access deprecation如何獲得長壽命訪問令牌,服務器端(PHP)?

我試圖得到一個長壽命的訪問令牌(60天后過期時間),我的應用程序。 但我所有的測試都只給我一個簡短的標記。

我該怎麼辦:

  • 首先做一個經典的「認證」來獲得一個短壽命的訪問令牌。 所以網址: GET graph.facebook.com:443/oauth/access_token?redirect_uri={my_callback} &代碼= {the_code_given_by_fb} & CLIENT_ID = {my_client_id} & client_secret = {my_client_secret}

=>給我兩個數據的access_token(長字符串)和到期(約4000秒),

  • 然後我想改變我短暫的生命獲得長壽命的訪問,所以我嘗試致電:

GET graph.facebook.com:443/oauth/access_token?redirect_uri={my_callback} &代碼= {the_code_given_by_fb} & CLIENT_ID = {my_client_id} & client_secret = {my_client_secret} & fb_exchange_token = {short_life_access_token} & grant_type = fb_exchange_token

=>此電話給我,第一次調用(所以沒有使用壽命長令牌)

我也嘗試相同的數據: GET graph.facebook.com:443/oauth/access_token?client_id={my_client_id} & client_secret = {my_client_secret} & fb_exchange_token = {sh ort_life_access_token} & grant_type = fb_exchange_token

=>同樣的結果

所以我不明白我們必須做什麼,以獲得長壽命的訪問令牌?

回答

0

您已正確完成。您已經擴展了短期訪問令牌。現在將其存儲在數據庫中並使用它。 60天后,頁面管理員用戶將不得不在60天內回到​​您的應用程序,以獲得新的訪問令牌,並延長訪問令牌的使用時間。

FYI offline access removal

從DOC

If you pass an access_token that had a long-lived expiration time, the endpoint will 
simply pass that same access_token back to you without altering or extending the expiration time. 
+0

這是非常奇怪......在到期指示所有令牌約4000秒?所以到期數據沒有正確返回? – MLKiiwy

+0

是否在開發者應用的高級設置中啓用了「deprecate offline_access」? – Venu

+0

否,但啓用'deprecate offline_access'後,我仍然在第二次調用後有一個短令牌(過期等於4000s) – MLKiiwy