我在App Store上有一个包含游戏中心成就的现有iOS应用程序。由于它还有一个有效的Facebook Connect实现,我想利用我的应用程序通过新的Achievements Graph API提供的社交渠道。
我创建了相应的成就页面,准备在Facebook上注册为我的应用程序的成就。根据我的阅读,由于必须使用app auth令牌来提交成就和分数,我在我的服务器上使用一些PHP脚本完成所有这些操作,因此我不必使用我的app二进制文件发送我的密钥。我计划让我的iOS应用程序在提交成就或分数时在我的服务器上调用脚本。
我正在使用我用于原生iOS应用程序的相同FB应用程序。显然,当用户解锁成就或达到新的高分时,我希望它能够开始生成故事和时间线事件。
然而,当我尝试注册FB应用程序的成就时,我遇到了一个很大的障碍。我通过执行注册的脚本得到以下错误:
OAuthException: (#15) This method is not supported for native apps
我似乎正在做一切正确的事情,向/<appid>/achievements
API发送POST,其中包含成就的网址等。
为了解决Facebook对这些API的限制,我还启用了现有的移动应用程序在开发人员设置中也是“网站”和“Facebook上的应用程序”。无济于事。
所以我的问题是......我错过了一些能够通过中间服务器从iOS应用程序提交的成就吗?如果有必要,我不介意设置画布页等等,但我宁愿不让用户重新认证为完全独立的应用程序,这样他们就可以将成就和分数发布到他们的Facebook流中。
我想要实现的是最多如果需要,请用户在其设备上的现有应用程序上获得其他权限。应该可以在我的服务器上调用一个脚本,在需要时将成就推送到Facebook - 但是如何?
这是使用单独的FB应用程序的唯一方法,该应用程序根本没有设置为本机移动应用程序,还是组合本机/ Web应用程序?
答案 0 :(得分:1)
这意味着您可能已将Facebook上的应用程序配置为“Native / Desktop”而非“web”。
在此配置中,您的应用机密是不受信任的,因为它假设您已将其与客户端代码一起发货 - 您的IOS应用程序无法在“网络”模式下运行,因此请改用
(我假设您实际上没有在客户端代码中发送您的应用程序密码 - 如果您有,除非您的应用程序设置为'Native / Desktop',否则这是一个巨大的安全问题)