如何在本机 iOS Facebook 应用中使用其应用范围 ID 打开某人的个人资料页面



从Open Graph v2.0开始,应用程序不再可以访问Facebook用户的实际ID,而是必须处理应用程序范围ID。这意味着在iOS中,url方案链接@"fb://profile/123456"不再有效,因为我们需要用户的实际身份。

有没有一种方法可以在原生iOS facebook应用程序中只使用应用程序范围ID打开用户页面?

这是我当前的代码,它在原生iOS Facebook应用程序中产生"找不到页面"错误。

NSString *link = [NSString stringWithFormat:@"fb://profile/%@", fbID];
NSURL *facebookURL = [NSURL URLWithString:link];
if ([[UIApplication sharedApplication] canOpenURL:facebookURL]) {
    [[UIApplication sharedApplication] openURL:facebookURL];
} else {
    NSString *link = [NSString stringWithFormat:@"http://facebook.com/%@", fbID];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:link]];
}

Hi基于此文档。所以Facebook ID是应用程序范围内的用户ID。所以你也可以使用基于相同的URL方案。尝试使用此请求打开用户配置文件:

fb://profile?app_scoped_user_id=%@

也可以考虑这篇关于这个请求的文章。毕竟,在我看来,你应该使用Safari来显示用户配置文件。

Swift版本:

let appUrl = NSURL(string: "fb://profile?app_scoped_user_id=(id)")!
            if UIApplication.sharedApplication().canOpenURL(appUrl) {
                UIApplication.sharedApplication().openURL(appUrl)
            } else {
                UIApplication.sharedApplication().openURL(NSURL(string: "https://www.facebook.com/app_scoped_user_id/(id)")!)
            }

编辑:这在理论上是可行的,但在实践中FB不允许打开来自第三方应用程序的FB://URL。

此URL方案打开用户的配置文件页面。请注意,它使用的是用户名,而不是身份证号码

fb://profile?id=[username]

最新更新