首页 > 解决方案 > 使用 Firebase 的 OAuth 问题通过 Facebook 登录(input_token 中的 App_id 与查看应用程序不匹配)

问题描述

我正在尝试通过 Facebook 登录,通过 OAuth 收集一些数据,然后使用凭据登录 Firebase。但是,我遇到了一个问题(请参阅下面的日志)。

代码示例

@objc func signInWFB() {

    let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()

    fbLoginManager.logIn(withReadPermissions: ["email","user_birthday","user_gender"], from: self) { (result, error) -> Void in

        if (error == nil) {
            let fbloginresult : FBSDKLoginManagerLoginResult = result!
            if (result?.isCancelled)! {
                print(result ?? FBSDKLoginManagerLoginResult())
            } else if(fbloginresult.grantedPermissions.contains("email")) {
                if((FBSDKAccessToken.current()) != nil) {
                    FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, email, birthday, gender"]).start( completionHandler: { (connection, result, error) -> Void in
                        if (error == nil) {
                            //everything works print the user data
                            print(result ?? AnyObject.self)

                            if let d = result as? [String:Any] {

                                // ALL GOOD UP TO HERE

                                let credential = FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current()!.tokenString)

                                Auth.auth().signIn(with: credential) { (authResult, error) in
                                    if let error = error {
                                        print(error) // ERROR HERE
                                        return
                                    }

                                    // ...
                                }
                            }
                        }
                    })
                }
            }
        }
    }
}

日志

Error Domain=FIRAuthErrorDomain Code=17004 "来自 Facebook 的 debug_token 响应不成功:{"error":{"message":"(#100) input_token 中的 App_id 与查看应用程序不匹配","type":"OAuthException", "code":100,"fbtrace_id":"BwV3jZweRqo"}}" UserInfo={NSLocalizedDescription=来自 Facebook 的不成功 debug_token 响应:{"error":{"message":"(#100) input_token 中的 App_id 不匹配查看应用程序","type":"OAuthException","code":100,"fbtrace_id":"BwV3jZweRqo"}}, error_name=ERROR_INVALID_CREDENTIAL}

我试过的

  1. 信息 plist 具有正确的 FacebookAppID 和 AccountKitClientToken
  2. 尝试在 Facebook 设置中打开/关闭“需要应用程序机密”
  3. 来自 Firebase 的 OAuth 重定向 URI 添加到 Facebook 设置

标签: swiftfacebookfirebasefacebook-graph-apifirebase-authentication

解决方案


这很难找到。我必须转到 Firebase > Authentication > Sign-in Method > Facebook 并更改其中的字段以匹配 Facebook 开发人员上的字段。由于某种莫名其妙的原因,它们不同...


推荐阅读