从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]];
}
答案 0 :(得分:12)
嗨基于此documentation。所以Facebook ID就是App-scoped用户ID。所以你也可以使用相同的URL方案。尝试使用此请求打开用户个人资料:
fb://profile?app_scoped_user_id=%@
另请考虑此article此请求。毕竟在我看来你应该用Safari来显示用户档案。
答案 1 :(得分:1)
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打开。
答案 2 :(得分:1)
此URL方案打开用户的个人资料页面。请注意,它使用用户名而不是ID号
fb://profile?id=[username]