1

我在 App Store 上有一个包含 Game Center 成就的现有 iOS 应用程序。由于它也有一个有效的 Facebook Connect 实现,我想在我的应用程序中利用通过新的成就图 API 提供的社交渠道。

我已经创建了相应的成就页面,准备在 Facebook 上注册为我的应用程序的成就。根据我的阅读,由于必须使用应用程序身份验证令牌来提交成就和分数,我正在使用一些 PHP 脚本在我的服务器上执行所有这些操作,因此我不必将我的密钥与我的应用程序二进制文件一起发送. 我计划在提交成就或分数时让我的 iOS 应用程序在我的服务器上调用一个脚本。

我正在使用与本机 iOS 应用程序相同的 FB 应用程序。显然,我希望它在用户解锁成就或达到新的高分时开始生成故事和时间线事件。

但是,在尝试为 FB 应用程序注册成就时,我遇到了一个很大的障碍。执行注册的脚本出现以下错误:

OAuthException: (#15) This method is not supported for native apps

我似乎做的一切都是正确的,向/<appid>/achievementsAPI 发送一个带有成就 URL 的 POST 等。

为了解决 Facebook 对这些 API 的限制,我还在开发人员设置中启用了现有的移动应用程序作为“网站”和“Facebook 上的应用程序”。无济于事。

所以我的问题是......我是否遗漏了一些东西来启用可以通过中间服务器从 iOS 应用程序提交的成就?如有必要,我不介意设置画布页面等,但我宁愿不让用户作为一个完全独立的应用程序重新进行身份验证,以便他们可以将成就和分数发布到他们的 Facebook 流中。

我想要实现的最多是在必要时向用户询问他们设备上现有应用程序的额外权限。应该可以在我的服务器上调用一个脚本,在需要时将成就推送到 Facebook - 但是如何?

这样做的唯一方法是使用一个单独的 FB 应用程序,该应用程序根本没有设置为原生移动应用程序,还是可以是原生/Web 应用程序的组合?

4

1 回答 1

1

这意味着您可能已经将 Facebook 端的应用程序配置为“Native/Desktop”而不是“Web”。

在此配置中,您的应用程序机密是不受信任的,因为它假定您已将其与客户端代码一起提供 - 您的 IOS 应用程序没有理由无法在“网络”模式下运行,因此请改用它

(我假设您实际上并没有在客户端代码中发送您的应用程序密码 - 如果您有,这是一个巨大的安全问题,除非您的应用程序设置为“本机/桌面”)

于 2012-04-20T00:34:01.087 回答