Facebook graph api 使用应用程序访问令牌发布分数

Facebook graph api 使用应用程序访问令牌发布分数,facebook-graph-api,access-token,facebook-access-token,Facebook Graph Api,Access Token,Facebook Access Token,我正试图从我的服务器上发布一个分数 我已将我的应用程序设置为游戏 我有我的应用程序访问令牌 我要寄到 我已授权并授予用户ID(即我)对我的应用程序的发布\u流和发布\u操作权限 但是,一个错误告诉我,我需要一个用户访问令牌来执行该操作,而Facebook在这里指出,我不需要: 为用户创建或更新分数 您可以通过向发布HTTP post请求来发布分数或用户 /用户ID/应用访问令牌的分数,只要您拥有 发布操作权限 我见过一个类似的问题,但没有得到回答:(他们最终创建了一个新的应用程序,这不是一个

我正试图从我的服务器上发布一个分数

  • 我已将我的应用程序设置为游戏
  • 我有我的应用程序访问令牌
  • 我要寄到
  • 我已授权并授予用户ID(即我)对我的应用程序的发布\u流和发布\u操作权限
但是,一个错误告诉我,我需要一个用户访问令牌来执行该操作,而Facebook在这里指出,我不需要:

为用户创建或更新分数

您可以通过向发布HTTP post请求来发布分数或用户 /用户ID/应用访问令牌的分数,只要您拥有 发布操作权限

我见过一个类似的问题,但没有得到回答:(他们最终创建了一个新的应用程序,这不是一个真正的解决方案)

为了验证错误使用API的不是我,我转到Graph API explorer,并在那里使用相同的访问令牌进行了尝试,没有运气:

有趣的是,如果我按照它所说的去做,并对我的用户访问令牌进行同样的尝试,它就会说:
这个方法必须用app-access\u令牌调用。

是否有我遗漏的东西,或者Graph API存在缺陷

谢谢,
可以。

看起来您的一切都是正确的,但是有一个相对鲜为人知的情况会产生错误消息

检查高级设置中的“应用程序类型”字段:

如果在高级设置中将其设置为“本机/桌面”而不是“Web”,则假定您的应用程序的二进制/本机发行版包含应用程序机密。 在此配置中,使用app access令牌进行的API调用不受信任,实际上完全忽略令牌

将应用程序设置更改回“Web”,您应该能够发布或删除和/或使用

如果这是一个问题,您可以通过调用
https://graph.facebook.com/app?fields=migrations&access_token=[此处为应用程序访问令牌]

在“Web”模式下,响应包含应用程序的迁移设置,如:

{
  "migrations": {
    "secure_stream_urls": false, 
    "expiring_offline_access_tokens": false, 
    "requires_login_secret": false, 
    //etc
}
在“本机/桌面”模式下,应用程序访问令牌不受信任,因此您无法访问应用程序的私有数据,响应为:

{
  "error": {
    "message": "An unknown error has occurred.", 
    "type": "OAuthException", 
    "code": 1
  }
}

我知道这个答案,但我想我昨天也回答了,给我几分钟时间来找到被骗者(如果它存在的话…)是的,成功了。更改此设置是否有问题?我的应用程序是本机iOS应用程序,这会产生任何问题吗?除非应用程序机密嵌入iOS二进制文件本身,否则没有问题。如果您使用应用程序访问令牌/应用程序机密进行呼叫,您需要在服务器端执行此操作-否则,您的应用程序的用户可以提取应用程序机密并代表您的应用程序进行呼叫-包括更改设置、将自己添加为管理员、将您的用户重定向到另一个站点,我在服务器端执行所有操作(除了首先登录facebook并将其发送到服务器以获取facebook id、在应用程序中显示教授图片等)我正在对graph API服务器端进行所有更新。我不认为有人会将应用程序机密放入分发给用户的二进制文件中,但如果这是唯一的情况,那么将其设置为“Web”就可以了。对我来说,我认为在一些较旧的API中,客户端登录时需要应用程序机密,而这种设置使登录变得安全所有用户都可以使用这个应用程序。这个秘密就是让自己登录到这个应用程序中,这也可以通过许多其他方式实现