繁体   English   中英

如何在原生iOS Facebook应用程序中打开某人的个人资料页面及其应用范围ID

[英]How to open someone's profile page with their app scope ID in native iOS Facebook app

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

有没有办法在原生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]];
}

您好基于此文档 所以Facebook ID就是App-scoped用户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方案将打开用户的个人资料页面。 请注意,它使用用户名而不是ID号

fb://profile?id=[username]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM