2011-04-07 95 views
1

是否有可能以某種方式使用oauth_token和app_secret請求access_token?Facebook應用程序流程中用於signed_request的oauth_token是什麼?

(如果沒有,地球上什麼是對的oauth_token?)

或者我需要每一個用戶(新會)訪問我的網頁獲得的access_token檢索代碼的時間,使宣誓請求?

(如果是的話,我如何爲返回的用戶啓用流暢的用戶體驗?我不想通過jscript重定向來回發送它們,但同時我想留在FB iframe中)

最好的問候,

SD

回答

1

當你的頁面在FB iframe中加載,Facebook將通過您的POST變量有效signed_request。如果您的頁面作爲FB Canvas應用程序加載,則通常不需要獲取一個。

你不再需要使用OAuth令牌了。你想要使用的是:

1)用戶signed_request,傳入FB IFrame 2)應用程序訪問令牌,用於拉取應用程序洞察或訪問請求2.0對象。

這裏是你如何處理signed_request(official documentation):

如果驗證不工作了,你可以將它們發送到這個網址讓他們去通過Facebook的身份驗證,然後返回到你的頁面:

http://www.facebook.com/dialog/oauth?client_id=<YOUR_APP_ID>&redirect_uri=<URLENCODED_APP_URL> 

更詳細的信息,比如如何獲得用戶的訪問令牌,只是授權您的應用程序,以及如何讓應用程序訪問令牌,你可以參考官方文檔here

一個全新的用戶
+0

嗯,但是......我需要提出一個要求,每一個用戶回來(「每個會話」)來訪問令牌請求頁面時,根據你引用的文檔頁面,像這樣: https://graph.facebook.com/oauth/access_token? client_id = YOUR_APP_ID&redirect_uri = YOUR_URL& client_secret = YOUR_APP_SECRET&code = THE_CODE_FROM_ABOVE 或者我可以通過oauth_code獲得access_token,而不必重定向...。啊,我希望我的問題有道理。 – stackdaemon 2011-04-08 20:52:29

+0

我早些時候混淆了一些語言 - 我應該說Facebook會向您傳遞一個「signed_request」,這就是您驗證用戶所需的全部內容。我已更新原始答案,以包含正確的信息和示例鏈接。希望這可以幫助! – Manto 2011-04-09 17:46:48

+0

好的,我現在正在更清楚地瞭解這一點! Thx的幫助! – stackdaemon 2011-04-12 08:09:26

0

oauth_token是用來製作訪問令牌並簽名請求的「公鑰」。您的訪問令牌使用POST獲得的那個signed_request變量進行編碼。如果您使用的是Facebook PHP SDK,它會自動爲您解析(我想其他官方SDK的行爲方式相同),如果您需要,可以簡單地撥打$facebook->getAccessToken()

相關問題