42

我尝试使用以下代码为我的 facebook 应用程序获取应用程序访问令牌:

APP_ACCESS_TOKEN = FB.api(
    "oauth/access_token",
    {client_id: APP_ID, client_secret: APP_SECRET_CODE, redirect_uri: uri},
    function(response){
    console.log(response);
});

应该是这样的:

GET https://graph.facebook.com/oauth/access_token?
        client_id=YOUR_APP_ID
       &client_secret=YOUR_APP_SECRET
       &redirect_uri=uri

但我得到一个错误:

code: 1
message: "Missing authorization code"
type: "OAuthException"

什么是授权码,我怎样才能得到它?

4

5 回答 5

70

获取应用访问令牌

要获取应用访问令牌,请调用以下 HTTP GET 请求:

GET https://graph.facebook.com/oauth/access_token?
            client_id=YOUR_APP_ID
           &client_secret=YOUR_APP_SECRET
           &grant_type=client_credentials

API 将使用以下形式的查询字符串格式的字符串进行响应:

access_token=YOUR_APP_ID|YOUR_APP_ACCESS_TOKEN

参考:http: //developers.facebook.com/docs/opengraph/howtos/publishing-with-app-token/

于 2013-05-07T06:28:48.983 回答
45
于 2012-10-18T09:21:45.217 回答
1

检查 node.js 或 JAVASCRIPT 的用户。

getLongLiveToken: function(data){
    FB.api('oauth/access_token', {
        client_id: data.client_id, // FB_APP_ID
        client_secret: data.secret, // FB_APP_SECRET
        grant_type: 'fb_exchange_token',
        fb_exchange_token: data.access_token // USER_TOKEN
    }, function (res) {
        if (!res || res.error) {
            console.log(!res ? 'error occurred' : res.error);
        } else {
            var accessToken = res.access_token;
            if(typeof accessToken != 'undefined'){}
        }
    });
}
于 2017-03-27T05:59:49.827 回答
0

您也可以在不生成令牌的情况下使用此 POST 端点,只需确保它是从服务器调用的,而不是从 app_secret 公开的客户端调用:

https://graph.facebook.com/?id={url}&scrape=true&access_token={app_id}|{app_secret}
于 2017-10-28T22:17:43.977 回答
0

我不确定在代码中公开 APP 客户端密码是个好主意,您可以从 Facebook 工具“访问令牌工具”获取 APP 令牌,只需将令牌复制到您的代码中以供任何使用 https://developers.facebook .com/tools-and-support/

于 2017-06-17T16:15:41.653 回答