由FacebookUID开发Facebook的个人资料

Tho*_*mas 7 facebook facebook-graph-api ios facebook-sdk-4.0 swift

我正在尝试使用他们的Facebook UID在Swift中打开用户的Facebook个人资料.在模拟器中,它工作并打开配置文件的Web版本并且工作正常,但是在我的实际设备上,它打开了Facebook本机应用程序并给了我一个"找不到页面"错误.

guard let facebookUID = self.user?.facebookUID else {
    return
}

print(facebookUID)
let fbURLWeb: NSURL = NSURL(string: "https://www.facebook.com/\(facebookUID)")!
let fbURLID: NSURL = NSURL(string: "fb://profile/\(facebookUID)")!

if(UIApplication.sharedApplication().canOpenURL(fbURLID)){
    // FB installed
    UIApplication.sharedApplication().openURL(fbURLID)
} else {
    // FB is not installed, open in safari
    UIApplication.sharedApplication().openURL(fbURLWeb)
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我究竟做错了什么?

提前致谢!

编辑

我注意到如果用户删除或没有在手机上安装Facebook应用程序,它将通过Safari正确打开配置文件,这就是为什么它在模拟器上工作,但没有在我的设备上.但是,我也注意到如果我尝试公开的个人资料fb://profile/4(这是Mark Zuckerburg的个人资料),我可以在Facebook应用程序中使用它.

在此输入图像描述

Bho*_*ani 9

嗨,基于文档 Facebook ID是应用程序范围的用户ID,所以你可以使用喜欢

fb://profile?app_scoped_user_id=%@
Run Code Online (Sandbox Code Playgroud)

但也请查看https://developers.facebook.com/bugs/332195860270199上的错误报告,打开Facebook个人资料

fb://profile?app_scoped_user_id=%@

不受支持.

因此,您必须在Safari中打开Facebook个人资料,或者您可以在应用webview中使用以打开用户个人资料.我已经检查了一些facebook id 10000****889,10000***041等所有在facebook app中都有开放的个人资料.有些人有同样的错误.Page bot找到了.

可能有隐私设置 - >你想要搜索引擎外链接到你的个人资料 - >没有.限制搜索.

从facebook Trick获取用户的ID:

1)右键单击人物或页面的个人资料照片,选择属性,ID将包含在页面中

2)在手机浏览器中,如果你打开照片有id例如"fbid =***&pid = 1000 .... 89"所以1000 .... 89将是你的用户ID


Ogu*_*han 6

这是另一种适用于iOS 10&的解决方案Swift 3.

首先,您应该将LSApplicationQueriesSchemes密钥添加到Info.plist文件中.如果您不添加此密钥,canOpenURL将始终返回false.比你需要添加你想要检查的方案.使用fb为Facebook.

它应该是这样的:

在此输入图像描述

其余的是斯威夫特:

if UIApplication.shared.canOpenURL(URL(string: "fb://profile/PROFILE_ID")!) {
    UIApplication.shared.open(URL(string: "fb://profile/PROFILE_ID")!, options: [:])
} else {
    UIApplication.shared.open(URL(string: "https://facebook.com/PROFILE_ID")!, options: [:])
}
Run Code Online (Sandbox Code Playgroud)

注意:将PROFILE_ID替换为目标.

  • 这对我有用,现在我可以打开Facebook应用程序,但不能去特定的Facebook个人资料. (2认同)