如何从服务器进行Facebook API调用?使用哪个令牌?

时间:2016-03-26 23:13:43

标签: javascript node.js facebook facebook-graph-api mean-stack

有人可以从服务器端解释Facebook API调用的流程吗?我理解一般过程,但我不知道怎么做。

我希望我的网站服务器使用登录凭据(使用user access tokenapp access token)定期发送API调用...大约每15分钟一次。从服务器端获取数据的目的是这样我可以将这些数据保存到我自己的数据库中。例如,以下API调用的结果:

`GET/v2.5/2405794352058/feed      // get the latest posts from fb group feed`

// returns an array of objects
// [{message:'something interesting', id: '23435jlf8923', updated_at: Date()}]

为了进行这些调用,我必须使用user access tokenapp access token,它在需要重新登录之前会存在一段有限的时间。如果我选择使用user access token,我将能够使用各种令牌来获取数据,因此我不太可能达到任何使用限制。但是,如果我使用app access token,我将直接控制访问令牌,但所有请求都将使用此相同的令牌。我应该使用哪种?

我不知道如何做这些技巧。我想知道的重要事情是如何做到这一点。

这是我的服务器代码目前的样子(返回500内部服务器错误):

router.post('/check_posts', function(req, res, next){
    var accessToken = req.body.accessToken;
    var feed;

    FB.api("/142985255268/feed?limit=100",
        {access_token: accessToken},
        function (response) {
          if (response && !response.error) {
            console.log(response.data);
            feed = response.data;
            res.json(feed);
          }
        }
    );
});

我正在使用NodeJS,AngularJS,MongoDB和ExpressJS(又名Mean Stack)。

1 个答案:

答案 0 :(得分:0)

App令牌永远有效。如果您使用相同的用户令牌进行呼叫,则可以使用App令牌 - 因为每个令牌都有限制。如果您存储来自应用程序其他用户的用户令牌,最好使用它们 - 以避免限制。扩展用户令牌有效期为60天。

更多信息:

要在Node.js服务器上使用Facebook API,请自行拨打电话或使用其中一个第三方SDK:https://developers.facebook.com/docs/apis-and-sdks#third-party-sdks