无法在Facebook Graph API上使用/ apprequests端点

时间:2015-11-13 18:31:02

标签: node.js facebook api facebook-graph-api passport.js

我在节点上使用passport.js来验证用户身份。我正在尝试添加用户邀请朋友加入我的游戏的能力。我能够查询/ invitable_friends端点以获取不使用该应用程序的朋友列表,但我似乎无法让/ apprequests工作。

我正在尝试根据API reference从浏览器发出帖子请求。

var url = 'https://graph.facebook.com/'+ uid + '/apprequests' +
'?access_token=' + accessToken +
'&message=Invitation' +
'&action_type=INVITE' +
'&ids=' + inviteTokens;

其中inviteTokens是从/ invitable_friends返回的邀请令牌的逗号分隔字符串。

我收到此错误:

{
  "error": {
    "message": "Invalid token: \"811513274\".  An ID has already been specified.",
    "type": "OAuthException",
    "code": 2500,
    "fbtrace_id": "BrulDCVO+SE"
  }
}

如果我排除了ids参数,查询仍然有效,但请求只是发送给我自己。如果我在端点路径中排除了我的uid,我会收到错误:

{
  "error": {
    "message": "(#803) Some of the aliases you requested do not exist: {inviteTokens},
    "type": "OAuthException",
    "code": 803,
    "fbtrace_id": "AL6Yo+jAwWW"
  }
}

这意味着端点期待其他东西,但文档使用example中的访问令牌:

FB.ui({method: 'apprequests',
    message: 'YOUR_MESSAGE_HERE',
    to: 'USER_ID, USER_ID, INVITE_TOKEN'
}, function(response){
    console.log(response);
});

我也尝试过使用Graph API资源管理器,结果相同。

希望我在这里提供了足够的细节,但如果您还需要其他信息,请告诉我。提前谢谢!

1 个答案:

答案 0 :(得分:0)

因此,Facebook不允许直接使用POST请求发送邀请。邀请必须通过Javascript SDK中的前端对话框,因此FB可以验证用户是否确实想要发送邀请。