使用应用访问令牌发布分数

时间:2012-08-16 17:00:06

标签: facebook-graph-api access-token facebook-access-token

我正在尝试从我的服务器发布分数。

  • 我将我的应用设置为游戏。
  • 我有我的应用访问令牌。
  • 我正在发帖到https://graph.facebook.com/USER_ID/scores
  • 我已经授权并将USER_ID和publish_actions权限授予我的应用程序USER_ID(这是我)。

然而,一个错误告诉我,我需要一个用户访问令牌来执行该操作,我不像Facebook在此处所述:https://developers.facebook.com/docs/score/

  

为用户创建或更新分数

     

您可以通过发出HTTP POST请求来发布分数或用户   / USER_ID /得分与app access_token,只要你有   publish_actions权限。

我见过类似的问题,但没有答案:Facebook Graph API Explorer won't POST scores(他们最终创建了一个新应用,这不是一个真正的解决方案)

为了验证我是不是错误地使用了API,我去了Graph API资源管理器并尝试使用相同的访问令牌,没有运气:

trying in Graph API

很有趣,如果我按照它说的说法并尝试使用我的用户访问令牌,它会说:This method must be called with an app access_token.

是否存在我缺少的内容或图谱API存在错误?

谢谢, 可以。

1 个答案:

答案 0 :(得分:2)

看起来你的一切都是正确的,但是有一个相对鲜为人知的案例会产生错误信息。

检查高级设置中的“应用类型”字段: screenshot of the app settings interface

如果在高级设置中将其设置为“Native / Desktop”而不是“Web”,则假定您的应用程序的二进制/本机分发包含应用程序密钥。 在此配置中,使用应用程序访问令牌进行的API调用是不可信的,实际上该令牌被完全忽略。

将应用设置更改回“网络”,您应该可以使用Scores

发布或删除Achievements和/或App Access Token

如果这是问题,您可以快速验证是否通过电话 https://graph.facebook.com/app?fields=migrations&access_token=[APP ACCESS TOKEN HERE]

在“网络”模式下,响应包含应用的迁移设置,例如:

{
  "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
  }
}