2

我只是在学习restfb。我在 FB 网站上注册了一个应用程序,并获得了一个应用程序 ID 和密钥。但是,根据本教程,我应该有一个访问令牌来初始化DefaultFacebookClient。我尝试按照那里的说明进行操作,但没有人充分解释如何从应用程序 ID 和密钥中获取访问令牌。

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 吗?

4

3 回答 3

3

插件作者似乎假设您将使用Login DialogJavaScript SDK对用户进行身份验证。

这两种方法都返回您可以使用的用户访问令牌。你需要你的 App_ID 和 Secret 来初始化这些。大多数 Facebook 操作都需要用户访问令牌。

如果您只是为了读取公共数据而进行 API 调用,那么您也许可以使用应用程序访问令牌而侥幸逃脱。为此,您可以使用 RestFB 的DefaultFacebookClient().obtainAppAccessToken() 方法

于 2013-03-19T01:51:45.480 回答
1

我遇到了同样的问题。

在 redirect_uri 参数中添加一个斜杠为我解决了这个问题。

此外,请确保您在发出请求时使用的是您自己的应用程序的 URI,而不是 Facebook 的 URI。

例如:

http://www.yoursite.com

对我不起作用

http://www.yoursite.com/

做过。

于 2013-10-12T09:21:06.927 回答
1

我不确定这是否是您想要的,但无论如何:

要获取与应用关联的用户的访问令牌,您可以使用 /accounts 'edge'(请参阅此处)。

此外,这个关于访问令牌的网站说您可以像这样调用 Graph API: https ://graph.facebook.com/endpoint?access_token=app_id|app_secret

现在,将其结合起来,获取访问令牌(JSON 格式以及其他一些东西): https://graph.facebook.com/ {your app id here}/accounts?access_token={again, your app id here }|{您的应用密码在这里}

请替换上面 url 中的字段并从中删除所有 { 和 }。

于 2014-03-26T12:01:03.460 回答