javascript - 将 Request 2.0 应用程序生成的请求发送到 "/me"之外的其他位置

标签 javascript facebook facebook-graph-api

我正在尝试使用 JS SDK 或图形 API 发送应用程序生成的请求,但我没有成功并且绝望。问题是,当我向当前登录的用户发送请求时,一切正常,但是当我尝试发送给不同的用户(即使该用户已经授权我的应用程序)时,我收到 OAuth 异常“#2 用户无法发送此请求:未知错误”,有时“无法发送任何应用程序请求”。

我的应用启用了 Request 2.0,并获得了publish_stream、read_stream 和 user_about_me 权限。即使在 Graph API 资源管理器中也会显示我所描述的相同错误消息。

这里使用 JS SDK 描述了完全相同的问题: Sending an App Generated Request with the JavaScript SDK

...这里使用 Graph API: Posting app generated apprequest to other facebook users in Java

请帮忙。

最佳答案

如果您想向用户发送请求,您应该使用应用程序访问 token (https://developers.facebook.com/docs/authentication/#applogin) POST 到 Graph API '/user_id/apprequests'。此调用设计为在服务器端执行,因为您不想共享您的应用程序访问 token :

curl -F 'access_token=APP_ACCESS_TOKEN' \
-F 'message=From the app to the user.' \
https://graph.facebook.com/USER_ID/apprequests

仅使用接收者 (USER_ID) 的用户访问 token 即可实现相同目的:

curl -F 'access_token=USER_ACCESS_TOKEN' \
-F 'message=From the app to the user.' \
https://graph.facebook.com/USER_ID/apprequests

在JS SDK中,如果没有添加Access Token字段,则默认的Access Token为登录用户的Access Token。知道了,上面向登录用户发送请求的调用将是:

FB.api('/me/apprequests', 'POST',  {message: 'From the app to the user.'});

第一次调用也可以使用 JS SDK 来完成,只需在参数中添加 App Access Token 即可。但是,这是一个请勿使用的情况,因为您不想在客户端共享您的应用程序访问 token 。

关于javascript - 将 Request 2.0 应用程序生成的请求发送到 "/me"之外的其他位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7671666/

相关文章:

xcode - 解析设备上的 FB SDK 登录应用程序传输安全错误,但模拟器上不存在 XCode 7.1 Swift IOS 9 FBSDK 4.7

php - 如何通过 Facebook Graph API 将照片发布到时间轴照片?

facebook - Graph api explorer - "with"修饰符是什么

javascript - 为什么这会返回 undefined - javascript

javascript - 如何判断视频是否受版权保护? YouTube API v3

javascript - 未使用 Facebook Feed FB UI 参数

ios Facebook Graph API - 发布音频文件

javascript - 如何对网页内容进行屏幕截图/加入 2 张图片

javascript - 如何在 JavaScript 中使用两点坐标来旋转 div?

javascript - 如何从应用程序中保存第三方 facebook id?