Swift Open Facebook Profile by FacebookUID

前端 未结 5 1114
别跟我提以往
别跟我提以往 2020-12-20 16:29

I\'m trying to open a user\'s Facebook profile in Swift using their Facebook UID. In the Simulator, it works and opens up the web version of the profile and works fine, howe

相关标签:
5条回答
  • 2020-12-20 16:54

    Swift 2.3

    func goFacebook() {
        let profileID = "" //Here put profile id Example:'62260589592'
        let facebookURL = NSURL(string: "fb://profile/\(profileID)")!
    
        if UIApplication.sharedApplication().canOpenURL(facebookURL) {
            UIApplication.sharedApplication().openURL(facebookURL)
        } else {
            UIApplication.sharedApplication().openURL(NSURL(string: "https://www.facebook.com/PageName")!)
        }
    }
    

    Note: If you can't find the facebook profile id can you use the follow site to do it (https://findmyfbid.com/)

    Set in the info.plist

    <key>LSApplicationQueriesSchemes</key>
    <array>
     <string>fb</string>
     <string>fbapi</string>
     <string>fbauth2</string>
     <string>fbshareextension</string>
     <string>fb-messenger-api</string>
    </array>
    
    0 讨论(0)
  • 2020-12-20 17:03

    Thanks to vien vu. From iOS 9 < above, You must whitelist the url's that your app will call out to using the LSApplicationQueriesSchemes key in your Info.plist. So add this code to your plist file:

     <key>LSApplicationQueriesSchemes</key>
    <array>
    <string>fb</string>
    <string>fbapi</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>
    <string>fb-messenger-api</string>
    <string>twitter</string>
    <string>whatsapp</string>
    <string>wechat</string>
    <string>line</string>
    <string>instagram</string>
    <string>kakaotalk</string>
    <string>mqq</string>
    <string>vk</string>
    <string>comgooglemaps</string>
    </array>
    
    0 讨论(0)
  • 2020-12-20 17:04

    Hi based on documentation Facebook ID is the App-scoped User ID so you can use like

    fb://profile?app_scoped_user_id=%@
    

    But also check bug report on https://developers.facebook.com/bugs/332195860270199 opening the Facebook profile with

    fb://profile?app_scoped_user_id=%@

    is not supported.

    So you will have to open the Facebook profile within Safari or you can use in app webview to open user profile. I have check with some facebook id 10000****889,10000***041 etc. all have open profile in facebook app.Yes some have same error.Page bot found.

    May be there is Privacy setting->Do you want search engine outside link to your profile->No. restrict search.

    To get ids of user from facebook Trick :

    1)Right click on the person or page's profile photo, select properties and the ID will be included in the page

    2)In mobile browswe if you open photo there is id E.g. " fbid = *** & pid = 1000....89 " so 1000....89 will be your user id

    0 讨论(0)
  • 2020-12-20 17:04

    I able to use this URL scheme fb://profile?id={userid/username/pageid} to open a facebook user's profile / page as of 30 Aug 2020.

    eg: fb://profile?id=4 OR fb://profile?id=zuck

    Warning: Please use at your own risk as this is not documented in Facebook developers documentation. This URL scheme may be removed by Facebook app in the future without any warning and indication.

    0 讨论(0)
  • 2020-12-20 17:08

    Here is another solution that works for iOS 10 & Swift 3.

    First of all, you should add LSApplicationQueriesSchemes key to Info.plist file. If you do not add this key, canOpenURL will always return false. Than you need to add what scheme(s) you want to check. Use fb for facebook.

    It should looks like this:

    The rest is Swift:

    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: [:])
    }
    

    Note: Replace PROFILE_ID with your target.

    0 讨论(0)
提交回复
热议问题