【问题标题】:Node.js - Get my account details from facebook graph apiNode.js - 从 facebook graph api 获取我的帐户详细信息
【发布时间】:2014-01-02 06:11:33
【问题描述】:

我正在尝试通过 facebook graph api (graph.facebook.com/me?access_token=token) 在 node.js 中获取我的 facebook 帐户详细信息,但我无法使用它:

access_token = appid + '|' + appsecret

这是我的代码:

var https=require('https');

var access_token = process.argv.slice(2)[0] + '|' + process.argv.slice(2)[1];
var options = {
    host: 'graph.facebook.com',
    path: '/me?access_token=' + access_token
};

https.get(options,function(res){
    var data = '';

    res.on('data', function (chunk) {
        data += chunk;
    });

    res.on('end', function() {
        console.log(data);
    });
});

我得到的错误是:

{"error":{"message":"必须使用活动访问令牌进行查询 关于当前的信息 用户。","type":"OAuthException","code":2500}}

【问题讨论】:

    标签: node.js facebook-graph-api facebook-access-token


    【解决方案1】:

    编辑:

    再次阅读文档后:https://developers.facebook.com/docs/facebook-login/access-tokens.

    我意识到 facebook 有 4 种类型的令牌:

    • 用户访问令牌
    • 应用访问令牌 = app_id|app_secret
    • 页面访问令牌
    • 客户端令牌

    App Access Token 用于读取应用设置(不是用户信息)。

    而“https://graph.facebook.com/me”用于用户信息,所以我们需要使用用户访问令牌


    应用访问令牌使用示例:

    https://graph.facebook.com/APP_ID/roles?&access_token=APP_ID|APP_SECRET

    【讨论】:

    • 我知道js 中的| 运算符,但是如果这样使用这个令牌是永久的吗?它不起作用,无论如何给我这个错误:{"error":{"message":"Invalid OAuth access token.","type":"OAuthException","code":190}}
    • 给我文档链接,以及如何将参数传递给节点?
    • 文件说:“graph.facebook.com/endpoint?key=value&access_token=app_id|app_secret”,他们告诉我们提供两个参数中的一个,而不是两个
    • 是两个字符串的拼接!
    【解决方案2】:

    我在网址中缺少&grant_type=client_credentials
    To Get the app Access Token for facebook api

    但应用令牌不是用于获取用户信息的令牌,在这种情况下,我需要 user access token,我可以从 Graph Api Explorer 获得该令牌

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      • 2020-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多