【问题标题】:get Phone Number from Facebook [duplicate]从 Facebook 获取电话号码 [重复]
【发布时间】:2017-04-21 11:57:15
【问题描述】:

我是 swift 的新手。谁能告诉我如何从 facebook 获取电话号码字段。

这里的按钮被按下:

@IBAction func fbButtonAct(_ sender: Any) {
        view.endEditing(true)

        let fbLogin : FBSDKLoginManager = FBSDKLoginManager()

        let loadingOverlay = loadingOnScreen(self.view.frame)
        self.view.addSubview(loadingOverlay)

        fbLogin.logIn(withReadPermissions: ["email"], from: self) { (result, err) in
            if(err != nil){
                print("custom fb login failed",err)
                loadingOverlay.removeFromSuperview()
                return
            }
            if (result?.isCancelled)!{
                loadingOverlay.removeFromSuperview()
                return
            }
            self.dataGettingFromFB(fbLogin, loadingOverlay: loadingOverlay)
            print(result?.token.tokenString)

        }
    }


func dataGettingFromFB(_ fbLogin:FBSDKLoginManager, loadingOverlay: UIView){
        FBSDKGraphRequest(graphPath: "/me", parameters: ["fields":"id, email, first_name, last_name, picture.type(large), gender, phone"]).start { (connection, result, err) in

            if (err != nil){
                print("failed to start graph request:",err)
                loadingOverlay.removeFromSuperview()
                return
            }

            let fbDetails = result as! NSDictionary

            var email : String? = fbDetails["email"] as? String
            if(email == nil){
                email = ""
            }

            let firstName = fbDetails["first_name"] as! String
            let id = fbDetails["id"] as! String
            let lastName = fbDetails["last_name"] as! String

            fbLogin.logOut()
        }
    }

【问题讨论】:

  • 无法获取电话号码
  • 只是问优步是如何通过facebook登录获取电话号码的
  • uber 是一款智能手机应用。他们通过智能手机权限获取电话号码,而不是通过 Facebook 登录。
  • 感谢您的时间和回答

标签: swift facebook phone-number


【解决方案1】:

试试这个:把public_profile设置为读取权限

fbLogin.logIn(withReadPermissions: ["email","public_profile"], from: self)

【讨论】:

  • 不工作 错误域=com.facebook.sdk.core Code=8 "(null)" UserInfo={com.facebook.sdk:FBSDKGraphRequestErrorGraphErrorCode=100, com.facebook.sdk:FBSDKGraphRequestErrorParsedJSONResponseKey={正文 = { 错误 = { 代码 = 100; "fbtrace_id" = "D2cL/IolPWC"; message = "(#100) 尝试访问节点类型(用户)上不存在的字段(电话)";类型 = OAuthException; }; };代码 = 400; },
  • , com.facebook.sdk:FBSDKGraphRequestErrorHTTPStatusCodeKey=400, com.facebook.sdk:FBSDKErrorDeveloperMessageKey=(#100) 尝试访问节点类型(用户)上不存在的字段(电话),com.facebook.sdk :FBSDKGraphRequestErrorCategoryKey=0})
  • @Gaurav 添加 user_friends 权限
  • 仍然不工作同样的错误
  • @Gaurav 不,没有办法获得电话号码。没有权限,API中也没有这个的数据字段。
猜你喜欢
  • 2015-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-25
  • 2012-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多