2012-05-22 77 views
9

是否可以延長60天訪問令牌?我讀過一個地方,當用戶訪問您的網站時,它可以擴展? (再過60天)?這是同一個標記還是一個新的標記?在60天后擴展Facebook訪問令牌

我基本上想像過去那樣使用offline_access。我有一個小jquery腳本,在用戶的Facebook上顯示自己的網站。

我也看過這樣的:

「」你需要讓用戶在60天內再次重新認證搶到一個新的令牌。」 ---沒了,只要有publish_stream貓 - 你不。在用戶從應用程序列表中刪除應用程序之前,您可以發佈消息,即使在100年後也是如此。因此,沒有理由將任何令牌附加到應用程序密鑰和祕密zerkms上。 9:02「

這是真的嗎?顯然我不需要發佈權限,我只想讀取流權限。

--update:從FB

報價:

「如果你想刷新仍然有效,長期的access_token,您將獲得第一的access_token然後新建一個短命的用戶請在下面調用相同的端點,返回的access_token將有一個新的長期到期時間,但是,access_token本身可能會或可能不會與以前授予的長期存取權限相同。所以,您究竟如何得到一個全新的令牌? FB.login方法只是返回現有的(未過期的)令牌。有任何想法嗎?

+1

我希望@zerkms已經測試並驗證了他的「100年」聲明... ;-P – deceze

回答

3

第 你不能延長令牌傳遞60天,你只能延長短命令,當你這樣做時,你會得到一個長達60天的壽命。

你也可以擁有所有的權限,但除非你有一個有效的訪問令牌,那麼你不能做API請求(當然,你可以但會得到一個異常)。

我不知道你是如何獲得60日的道理,如果它的客戶端(再延長的話)或服務器端,而是根據Removal of offline_access permission官爵:

方案3:服務器端的OAuth開發

...

如果調用時,同時還有對於 用戶,返回的用戶從這個第二個呼叫馬ACCESS_TOKEN有效的長期用戶的access_token y是 相同或可能已更改,但在任一情況下,到期時間將 設置爲較長的​​到期時間。

或者

方案4:客戶端OAuth和擴展ACCESS_TOKEN過期時間通過新的端點

....

請注意,端點只能用於延長短暫的 用戶access_tokens。如果您傳遞具有長期生存時間的access_token,則端點將簡單地將相同的access_token 傳回給您,而不更改或延長到期時間。

...

+0

謝謝,如果我們有50天的時間,用戶來到應用程序並想擴展它?那麼不可能呢?用戶是否必須在令牌過期後回來? 「 – Wesley

+0

」如果你想刷新一個仍然有效的長期訪問令牌,你必須先獲得一個新的短期用戶access_token,然後調用下面的同一個端點,返回的access_token將有一個新的長期到期時間,然而,access_token本身可能會或可能不會與以前授予的長期存取令牌相同「 因此,您究竟如何得到一個全新的令牌? FB.login方法只是返回現有的(未過期的)令牌。有任何想法嗎? – Wesley

+0

(1)它說「access_token本身可能與以前授予的長期access_token相同或不一樣」,請問您是否可以擴展它? (2)也許使用服務器端身份驗證,這樣你可以在任何時候獲得60多天的時間。 –

1

您可以使用PHP SDK使用下面的代碼看看

$extendedToken = $facebook->setExtendedAccessToken(); 
$token = $facebook->getAccessToken(); 
print_r($token); 

用戶登錄並提供了所需的權限後。您還可以檢索其他擴展的訪問令牌,像頁面,只需使用圖形API調用

$facebook->api('<PAGE_ID>?fields=access_token'); 

這將返回該頁面的擴展訪問令牌之後。只要您已經要求提供manage_page權限。