2013-03-19 95 views
2

我只是在學習restfb。我在FB網站上註冊了一個應用程序,並獲得了應用程序ID和密鑰。但是,根據this tutorial,我應該有一個訪問令牌來初始化DefaultFacebookClient。我試圖按照那裏的指示,但沒有充分解釋如何從應用程序ID和密鑰中獲取訪問令牌。如何獲得FB訪問令牌給予App ID和Secret?

Request https://graph.facebook.com/oauth/authorize?client_id=MY_API_KEY&redirect_uri=http://www.facebook.com/connect/login_success.html 

Facebook will redirect you to http://www.facebook.com/connect/login_success.html?code=MY_VERIFICATION_CODE 

Request https://graph.facebook.com/oauth/access_token?client_id=MY_API_KEY& redirect_uri=http://www.facebook.com/connect/login_success.html&client_secret=MY_APP_SECRET&code=MY_VERIFICATION_CODE 

Facebook will respond with access_token=MY_ACCESS_TOKEN 

我確實做到了,但我每次得到

{ 
    "error": { 
     "message": "Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request", 
     "type": "OAuthException", 
     "code": 100 
    } 
} 

任何想法,我應該做的就是的訪問令牌,並開始使用該API?

回答

3

它看起來像插件作者認爲您將通過Login DialogJavaScript SDK驗證用戶身份。

這兩種方法都會返回一個您可以使用的用戶訪問令牌。你需要你的App_ID和Secret來初始化這些。大多數Facebook操作都需要用戶訪問令牌。

如果您只是爲了讀取公共數據而進行API調用,那麼您可能會獲得應用程序訪問令牌。爲此,您可以使用RestFB的DefaultFacebookClient().obtainAppAccessToken() method

+1

我實際上只是試圖以編程方式訪問我的朋友列表 – amphibient 2013-03-19 02:11:02

+0

您需要一個用戶訪問令牌。如果你想玩API而不必擔心身份驗證,可以從[Graph API Explorer](https://developers.facebook.com/tools/explorer)獲取一個。 – cpilko 2013-03-19 02:17:23

+0

我只是做了一些更新。 「玩API而不必擔心身份驗證」是什麼意思? – amphibient 2013-03-19 02:22:18

1

我遇到了同樣的問題。

爲redirect_uri參數添加尾部斜線解決了我的問題。

此外,請確保您使用您的應用程序的URI,而不是在提出請求時使用Facebook URI。

E.g:

http://www.yoursite.com 

,我沒有工作,而

http://www.yoursite.com/ 

一樣。

1

我不知道,如果這就是你想要什麼,但無論如何:

要獲得訪問令牌與應用程序相關聯的用戶,你可以使用/賬戶「邊緣」(見here)。

此外,this site about access tokens說,你可以撥打電話到圖形這樣的API: https://graph.facebook.com/endpoint?access_token=app_id|app_secret

現在,結合的是,以獲得訪問令牌(JSON格式與一些其他的東西一起): https://graph.facebook.com/ {你的應用程序ID在這裏}/accounts?access_token = {你的應用程序ID在這裏} | {你的應用程序在這裏的祕密}

請替換上面的url中的字段,並從中刪除所有{和}。