Facebook - 通过 app_scoped_user_id 打开个人资料

Posted

技术标签:

【中文标题】Facebook - 通过 app_scoped_user_id 打开个人资料【英文标题】:Facebook - open profile by app_scoped_user_id 【发布时间】:2014-06-12 18:32:02 【问题描述】:

我有一个 facebook 用户的 app_scoped_user_id 列表,它存储在我们的数据库中,并在应用请求查看个人资料的权限时由我们的应用返回。

我可以通过转到http://facebook.com/app_scoped_user_id/(id) 打开个人资料。

如何让 ios 应用打开原生 facebook 应用并通过 ID 查看个人资料?

fb://profile/(id) 不起作用,因为该页面需要“Facebook ID”,而不是 app_scoped_id。

我在这里做什么?我不明白为什么这是不可能的。如果我在浏览器中打开 facebook.com/(app_scoped_id) 就可以了。如果我在应用程序中将该页面作为“textview 中的链接”打开,它会打开一个空白事件页面(不知道它为什么会进入事件?)。如果我打开 facebook.com/events/valideventID - 它会打开正确的事件。

我只想根据他/她的应用范围 ID 在应用中打开用户的 Facebook 个人资料。

【问题讨论】:

我会在developers.facebook.com/bugs提交一个错误 我不认为这是一个错误。这与 Graph V.2 之后应用程序 ID 和用户 ID 的分离有关,但我不知道如何解决这个问题 - 这似乎有点愚蠢,因为这绝不会阻止我查看任何人的配置文件。它所做的一切都让它变得不那么方便了。 对我来说,这听起来像是一个错误,您无法使用应用范围内的用户 ID 链接到 Facebook 应用中的个人资料 可能。我只是让移动浏览器接管它来解决它。如果我打开链接facebook.com/app_scoped_user_id/(id),它将跳转到 Safari 并显示给用户。这对于我需要的用途来说已经足够了,但当然不是问题的答案或解决方案——如果它是一个错误的话。 【参考方案1】:

正如https://developers.facebook.com/bugs/332195860270199 的错误报告中所述,不支持使用 fb://profile?app_scoped_user_id=%@ 打开 Facebook 个人资料。

您必须在 Safari (http://facebook.com/%@) 中打开 Facebook 个人资料。这很烦人,但可以作为一种解决方法......

也许您可以像我一样在错误报告下评论您需要此功能。

除了使用 Safari,您还可以使用应用内网络浏览器。这就是我要尝试的。

【讨论】:

我刚刚从 Sam Vermette 添加了一个应用内 Web 浏览器:github.com/TransitApp/SVWebViewController。它完美无瑕,正是我想要的。 NSString *fbProfile = [NSString stringWithFormat:@"facebook.com/%@", profileId]; SVModalWebViewController *webViewController = [[SVModalWebViewController alloc] initWithAddress:fbProfile]; [self presentViewController:webViewController 动画:YES 完成:NULL];

以上是关于Facebook - 通过 app_scoped_user_id 打开个人资料的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 数据库设计?

是否可以通过请求标头传递 Facebook Graph API 访问令牌?

通过Facebook APP获得与计数一样的帖子

通过flash应用在facebook上使用Google分析进行跟踪

iOS:从 facebook 启动应用程序

Facebook Graph 不返回电子邮件