Facebook iOS SDK通过应用程序请求传递参数

问题描述:

我希望我的本机iOS应用程序通过参数向iOS上的Facebook用户发送请求。如果他们接受,它会启动我的原生iOS应用程序并将参数传递给它。这可能吗?Facebook iOS SDK通过应用程序请求传递参数

我在使用[脸谱对话框:@“apprequests”andParams:dict andDelegate:self]方面取得了成功。我得到的书签计数器在Facebook iOS应用上增加,但我没有看到个人请求。如果我点击书签,它会启动我的应用程序,但我不明白我如何获得我通过请求传递的“数据”参数,甚至是request_id。

在桌面上,我看到“应用和游戏”的“请求”部分下的单个消息。如果我接受请求,我可以看到它将request_id传递给我的(简单回显)画布URL。我读这可以用来获取相关的数据。但是,这并不能帮助我在iOS上。我的应用只能在iOS上运行,因此这个画布应用最终只会是“这个应用只适用于iOS”,但似乎有必要让请求流动。

这些都没有告诉我通知,所以也许我做了一些基本的错误。或者,还有其他方式可以将消息传递给Facebook用户,并提供可点击的URL(启动并向我的应用程序提供其参数)。

另一件奇怪的事情,我看不出如何摆脱请求。如果我在桌面客户端上“X”他们,它会问我是否要停止接收来自我的应用程序的所有请求,如果我说不,它只会暂时隐藏它们。

+0

不确定,但您是否在寻找“Deep Linking”? – 2012-10-31 04:21:05

我也一直在努力。

首先,FB iOS SDK requests tutorial是一个好的开始。

然而,也有一些错误,使预期的东西不起作用:

  • 看来,目前,移动网络URL必须被设置为FB应用程序,以便requestIds是从原生FB应用转发到您的原生应用。看到这个bug report
  • 上述教程对请求对象使用了错误的图形路径。我使用“request-id”,它应该是“request-id”_“user-id”。我已经提交了关于该问题的文档bug report

Leif,Hi - 我是Facebook的工程师,他写了你引用的教程。 我看了一下你提到的问题 - 这实际上不是文档中的错误,而是设计上的错误。

从iOS上的请求的传入的URL看起来是这样的:

fb480369938658210://authorize?expires_in=3600&access_token=BAAG05NeN86IBAC31YWMWRHVrNCAYMy0Rv1OtqZCwdH8QDBUAt5KgZCsIbU0EOZAvMms2tZCANV9sZBWSkEzStDtt4i7YnYZA4bPgGx2XaI5s22iBMxIZAneZAv7ADi3Wi20ZD&target_url=http%3A%2F%2Fm.facebook.com%2Fapps%2Ffriendsmashsample%3Ffb_source%3Dnotification%26request_ids%3D364209433669109%252C379616028785376%252C494409170593789%252C489782271042929%252C328564930575784%26ref%3Dnotif%26app_request_type%3Duser_to_user

这是捆绑在一起的几个要求,有多个请求ID到一个单一的URL。

要获得与此请求耦合的额外数据,不需要具有user_id。点击graph.facebook.com/*request_id*就足够了。

实际上您可以在“请求ID格式”标题下的文档中看到此概述:https://developers.facebook.com/docs/requests/#deleting

包含在Friendsmash示例和教程中的代码工作正常 - 我刚刚验证了它。所以它应该成为OP问题的良好指导。

谢谢!

+0

任何想法为什么我的app_requests不会触发通知?他们增加我的应用程序书签计数器,我可以读取应用程序数据,并删除请求。在使用我的个人帐户时,我永远都不会在iOS Facebook应用中看到地球亮点。我已经看到它在桌面www界面上显示通知,但只是很少。我的一位测试人员在iOS上看到通知,因此它必须是FB帐户设置或历史记录,但我已尝试在iOS和www应用上都可以找到的每个可以想到的开关。我想知道它是否可能是一些偷偷摸摸的垃圾邮件拦截算法? – user1055568 2012-10-31 22:17:22

+0

你是如何触发应用程序请求的?来自哪里?您可以请在[email protected]上提交报告 - 谢谢。 – 2012-10-31 23:04:07

+0

我在iOS SDK,vintage 2010中使用@“apprequests”对话框。客户端API看起来非常简单,我认为问题必须是“Facebook应用程序”设置。我想我应该升级到最新的SDK,并在提交报告前查看当前的文档和应用程序配置。 – user1055568 2012-11-02 17:41:45