【问题标题】:Posting scores with app access token使用应用访问令牌发布分数
【发布时间】:2012-08-13 02:11:59
【问题描述】:

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

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

但是,一个错误告诉我我需要一个用户访问令牌来执行该操作,正如 Facebook 在这里所说的那样:https://developers.facebook.com/docs/score/

为用户创建或更新分数

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

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

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

有趣的是,如果我按照它所说的内容尝试使用我的用户访问令牌,它会显示:This method must be called with an app access_token.

是我遗漏了什么还是 Graph API 存在错误?

谢谢, 可以。

【问题讨论】:

  • 我知道这个答案,但我想我昨天也回答了,给我几分钟时间找到骗子(如果存在的话......)

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


【解决方案1】:

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

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

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

将应用设置改回“Web”,您应该可以使用App Access Token 发布或删除Scores 和/或Achievements

如果这是问题所在,您可以通过调用 https://graph.facebook.com/app?fields=migrations&access_token=[APP ACCESS TOKEN HERE]

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

{
  "migrations": {
    "secure_stream_urls": false, 
    "expiring_offline_access_tokens": false, 
    "requires_login_secret": false, 
    //etc
}

在“Native/Desktop”模式下,应用访问令牌不受信任,因此无法访问应用的私有数据,响应为:

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

【讨论】:

  • 是的,成功了。更改此设置有什么问题吗?我的应用是原生 iOS 应用,这会产生什么问题吗?
  • 除非 app secret 嵌入到 iOS 二进制文件本身中,否则没有问题。如果您使用应用访问令牌/应用密码进行调用,您需要在服务器端进行 - 否则您应用的用户可能会提取应用密码并代表您的应用进行调用 -包括更改设置、将自己添加为管理员、将用户重定向到另一个站点等
  • 我正在服务器端做所有事情(除了首先登录 facebook 并将其发送到服务器以获取 facebook id、在应用程序中显示教授图片等)并且我正在做所有更新到图形 API 服务器端。我不认为有人会将应用程序机密放入分发给用户的二进制文件中,但如果这是唯一的情况,那么将其设置为“Web”就可以了。对我来说。
  • 我认为在一些较旧的 API 中,客户端登录时需要应用程序密码,并且该设置确保这样做很安全,因为所有用户都可以使用应用程序密码进行登录到应用程序, 这也可以通过许多其他方式完成
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-12
相关资源
最近更新 更多