带有应用请求的Facebook iOS SDK Pass参数

时间:2012-04-21 06:52:40

标签: ios facebook sdk

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

我使用[facebook dialog:@“apprequests”andParams:dict andDelegate:self]获得了微弱的成功。我得到书签计数器在Facebook iOS应用程序上增加,但我没有看到个别请求。如果我点击书签它会启动我的应用程序,但我不知道如何获得我通过请求传递的“数据”参数,甚至是request_id。

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

这些都没有向我显示通知,所以也许我正在做一些基本错误的事情。或者,是否有其他方式将消息传递给Facebook用户,他们可以点击一个URL(启动并向我的应用程序提供其参数)。

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

2 个答案:

答案 0 :(得分:1)

Leif,嗨 - 我是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

这是将多个请求捆绑在一起的多个请求捆绑在一起。

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

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

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

谢谢!

答案 1 :(得分:0)

我也一直在努力。

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

然而,还有一些错误导致事情无法正常工作:

  • 目前,似乎必须为FB应用设置移动网址,以便将requestIds从原生FB应用转发到您的原生应用。见bug report
  • 上面提到的教程使用了错误的图形路径作为请求对象。我使用“request-id”,它应该是“request-id”_“user-id”。我已就此问题提交了文档bug report