我正在尝试从我的服务器发布分数。
然而,一个错误告诉我,我需要一个用户访问令牌来执行该操作,我不像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资源管理器并尝试使用相同的访问令牌,没有运气:
很有趣,如果我按照它说的说法并尝试使用我的用户访问令牌,它会说:This method must be called with an app access_token.
是否存在我缺少的内容或图谱API存在错误?
谢谢, 可以。
答案 0 :(得分:2)
看起来你的一切都是正确的,但是有一个相对鲜为人知的案例会产生错误信息。
检查高级设置中的“应用类型”字段:
如果在高级设置中将其设置为“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
}
}