【问题标题】:Unable to use the /apprequests endpoint on Facebook Graph API无法在 Facebook Graph API 上使用 /apprequests 端点
【发布时间】:2016-02-15 10:28:12
【问题描述】:

我在节点上使用 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 浏览器,结果相同。

希望我在这里提供了足够的详细信息,但如果您需要其他任何内容,请告诉我。提前致谢!

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 嗨,Brian,我遇到了同样的问题(在 iOS 上)。你从哪里得到你上面发布的信息(Facebook 强制前端对话框的设计决定)?
    • 嗯,我不太记得了,也许是一篇博文?我认为他们在应用程序发送恶意程序邀请时遇到问题,这些邀请是我们发起或由用户批准的。通过强制应用程序使用他们的前端对话框,他们可以确保用户批准了邀请。不过,不太确定它是否会转化为 iOS。
    • 谢谢!在 iOS 上也是如此。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多