1

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

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

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

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

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

4

2 回答 2

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

这是将多个请求捆绑在一起,将多个请求 ID 捆绑到一个 url 中。

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

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

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

谢谢!

于 2012-10-30T18:50:15.283 回答
0

我也一直在为此苦苦挣扎。

首先,FB iOS SDK 请求教程是一个好的开始。

但是,也有一些错误导致事情无法按预期工作:

  • 目前看来,必须为 FB 应用程序设置一个移动 Web url,以便将 requestIds 从本机 FB 应用程序转发到您的本机应用程序。请参阅此错误报告
  • 上面提到的教程对请求对象使用了错误的图形路径。我使用“request-id”,它应该是“request-id”_“user-id”。我已经提交了关于该问题的文档错误报告。
于 2012-10-30T16:50:14.717 回答