Facebook Graph All Mutual Friends

时间:2017-06-26 20:20:01

标签: javascript node.js facebook express facebook-graph-api

我有一个展示共同朋友的应用。在我的节点服务器上,我有以下代码来为我的用户提供共同的朋友:

var express = require('express'),
 FB = require('fb'),
 appFB = FB.extend({appId: '<appId>', appSecret:'<app-secret>'}),
 router = express.Router();

router.get("/allMutualFriends", function(req, res) {
if(!req.query.accessToken || !req.query.otherUserId){
    res.set("type", "error");
    return res.status(400).send({"accessToken":req.query.accessToken, "otherUserId": req.query.otherUserId});
}
console.log(req.query);
var accessToken = req.query.accessToken;
var otherUserId = req.query.otherUserId;
appFB.setAccessToken(accessToken);
appFB.api('/' + otherUserId, { fields: 'context.fields(all_mutual_friends.limit(500))'}, function (response) {
    if(!response.context) {
        res.set('Content-Type', 'text/plain');
        return res.status(400).send(JSON.stringify(response));
    }
  if(!response.context.all_mutual_friends) return res.status(400).send("unable to find mutual friends");
  console.log(response);
    var friends = response.context.all_mutual_friends.data;
    var responseData = [];
    for(var i = 0; i < friends.length; ++ i){
        responseData.push({name: friends[i].name, id: friends[i].id, picture: friends[i].picture.data.url});
    }
return res.status(200).send(responseData);
    });
});
module.exports = router;

我已经将我的应用程序提交到Facebook并且他们批准了它,并且这段代码正常工作了大约一周。

然而,上周五它完全停止了工作。我不确定Facebook或我的代码是否有任何问题。

现在,我得到的只是:

{
  "context": {
    "id": "<some-large-hash>"
  },
  "id": "<the-id-of-the-other-user>"
}

我唯一能想到的是他们认为我的节点服务器是我的客户端,但事实并非如此。

有人有什么想法吗? Api版本2.9

如果这是重复,我道歉

1 个答案:

答案 0 :(得分:4)

同样的问题发生在我身上,我浪费了两个小时,然后发现这是Facebook平台API(https://developers.facebook.com/bugs/241586859664764/)的确认错误。看起来许多其他开发人员都受此影响。

P.S。我不知道你为什么要投票。这是一个很好的问题,有很多背景。