【问题标题】:How to get FB access token given App ID and Secret?如何在给定 App ID 和 Secret 的情况下获取 FB 访问令牌?
【发布时间】:2013-03-07 13:24:08
【问题描述】:

我只是在学习restfb。我在 FB 网站上注册了一个应用程序并获得了一个应用程序 ID 和密钥。但是,根据this tutorial,我应该有一个访问令牌来初始化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 吗?

【问题讨论】:

    标签: java facebook restfb


    【解决方案1】:

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

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

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

    【讨论】:

    • 我实际上只是想以编程方式访问我的朋友列表
    • 您需要一个用户访问令牌。如果您想使用 API 而不必担心身份验证,请从 Graph API Explorer 获取一个。
    • 我刚刚做了一些更新。 “无需担心身份验证即可使用 API”是什么意思?
    • 他们的教程是错误的。 "Login for Server-Side Apps" documentation 给出了一个以 PHP 为中心的想法,说明您需要做什么来进行身份验证。让 Facebook 身份验证工作令人沮丧,但在客户端更容易完成。如果您处于测试阶段,并且不想对整个用户身份验证工作流程进行编码和故障排除,您可以从 Graph API 资源管理器为您获取有效的用户访问令牌,并将其粘贴到您的代码中。
    • 访问developers.facebook.com/tools/explorer。单击“获取访问令牌”按钮。复制“访问令牌”字段的内容。
    【解决方案2】:

    我遇到了同样的问题。

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

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

    例如:

    http://www.yoursite.com
    

    当时对我没用

    http://www.yoursite.com/
    

    做了。

    【讨论】:

      【解决方案3】:

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

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

      另外,this site about access tokens 表示您可以像这样调用 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={再一次,your app id here}|{your app secret here}

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-07
        • 2014-04-18
        • 2013-08-15
        • 1970-01-01
        • 2022-11-24
        相关资源
        最近更新 更多