簡體   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