试图获取应用访问令牌

时间:2012-10-18 06:59:00

标签: facebook access-token

我尝试使用以下代码获取我的Facebook应用的app-access-token:

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"

什么是授权码,我该如何获得?

5 个答案:

答案 0 :(得分:65)

获取应用访问令牌

要获取App Access Token,请调用以下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/

答案 1 :(得分:46)

https://developers.facebook.com/docs/howtos/login/login-as-app/

  

“因为它要求您包含App Secret,所以不应尝试在客户端进行此调用,因为这会将此秘密暴露给所有应用用户。 重要的是,您的App Secret绝不会与任何人共享。因此,此呼叫应在服务器端执行“

对于app访问令牌,它是相同的 - 你永远不应该在客户端使用,因为每个用户都可以在那里发现它,然后开始使用它代表你的app执行操作(或更改您应用的许多设置)。

如果您的应用程序有服务器端部件,您可以自己“构建”应用程序访问令牌,使用管道符号app_id|app_secret连接app id和secret。

答案 2 :(得分: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'){}
        }
    });
}

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

https://graph.facebook.com/?id={url}&scrape=true&access_token={app_id}|{app_secret}