ios swift facebook登录 fb_mobile_login_native_app_switch_dialog_result 错误

Posted

技术标签:

【中文标题】ios swift facebook登录 fb_mobile_login_native_app_switch_dialog_result 错误【英文标题】:ios swift facebook login fb_mobile_login_native_app_switch_dialog_result error 【发布时间】:2016-12-20 01:23:24 【问题描述】:

我正在使用 facebook swift sdk。

当我点击登录按钮时,我收到此警告/错误:

FBSDKLog: Invalid identifier: 'fb_mobile_login_native_app_switch_dialog_result'. Must be between 1 and 40 characters, and must be contain only alphanumerics, _, - or spaces, starting with alphanumeric or _.

我的代码:

@IBAction func fbLoginBtnDidTouch(_ sender: AnyObject) 
        let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
        fbLoginManager.logIn(withReadPermissions: ["email"], from: self)  (result, error) -> Void in
            if (error == nil)

                let fbloginresult : FBSDKLoginManagerLoginResult = result!

                if (result?.isCancelled)! 
                    return
                

                if(fbloginresult.grantedPermissions.contains("email"))
                
                    self.getFBUserData()
                
            
        
    
    func getFBUserData()
        if((FBSDKAccessToken.current()) != nil)
            FBSDKGraphRequest(graphpath: "me", parameters: ["fields": "id, email"]).start(completionHandler:  (connection, result, error) -> Void in
                if (error == nil)
                    let fbJson = JSON(result ?? [])
                    if let fbId = fbJson["id"].string, let fbEmail = fbJson["email"].string 

                        self.fetchedFbId = fbId
                        self.fetchedFbEmail = fbEmail

                        var fbLoginParams = [String: Any]()

                        fbLoginParams["facebook_id"] = fbId

                        self.createFbAccount(fbLoginParams)
                    
                
            )
        
    

【问题讨论】:

【参考方案1】:

进入您需要添加的应用目标下的 info.plist 文件:

FacebookAppID

<key>FacebookAppID</key>
<string>123456789012345</string>

CFBundleURLTypes

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb123456789012345</string>
        </array>
    </dict>
</array>

LSApplicationQueriesSchemes:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fb-messenger-api</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>
</array> 

从 Facebook 开发者门户检索到的 Facebook 应用 ID。

【讨论】:

以上是关于ios swift facebook登录 fb_mobile_login_native_app_switch_dialog_result 错误的主要内容,如果未能解决你的问题,请参考以下文章

iOS Facebook 登录按钮与 swift

Facebook 使用 Parse SDK 登录(iOS 9、Xcode 7.1、Swift 2.1)

在 iOS9 和 Swift2 中使用 Parse 登录 Facebook

如果用户取消登录,Swift ios facebook登录会使应用程序崩溃

无法使用 Facebook SDK IOS Swift 登录 [重复]

自定义 Facebook 登录视图 Swift