2011-11-03 88 views
1

我需要關於Facebook OAuth的幫助。我正在爲我的網頁製作一個Facebook新聞提要小工具。我所做的是,我創建了一個Facebook登錄頁面,獲取了驗證碼,然後獲得了訪問令牌。訪問令牌中有一個到期參數。Facebook OAuth AccessToken過期

我的問題是,當令牌過期時會發生什麼?它是否成爲新的令牌人再次登錄?我想將它存儲在一個數據庫中,所以我可以隨時通過網頁進行訪問。

如果我使用訪問令牌,它仍然會過期嗎?或者它是否過期,如果它沒有被用於給定的到期時間?

+0

謝謝大家的幫助! – Gasim

回答

1

最初問題的答案是訪問令牌僅在用戶登錄時有效。所以是的,每次登錄到您的網站時都需要檢索一個新的access_token。詳情請見authentication flow documentation

爲了獲得沒有失效(或有效期較長)的訪問令牌,您需要讓用戶授權offline_access。這應該在你的範圍內設置。

這裏的offline_access許可的描述從this documentation

離線訪問 - 使您的應用程序在任何時間執行代表用戶的授權請求。默認情況下,大多數訪問令牌在短時間後過期,以確保應用程序僅在主動使用應用程序時代表用戶發出請求。此權限使我們的OAuth端點返回的訪問令牌長久存在。

但是,這不會永遠讓您訪問。如果用戶更改密碼或取消授權應用程序,則需要讓用戶重新授權才能獲得新的access_token。如果您嘗試使用過時的訪問令牌,則會返回錯誤消息。這就是爲什麼有一個流量可以應對這種可能性的原因。

1

根據我的知識,您可以通過在用戶執行fconnect時隨時訪問我的信息權限(offline_access)來實現此目的。