【问题标题】:Swift - Get user email from Facebook out of GraphRequestSwift - 从 GraphRequest 中获取 Facebook 的用户电子邮件
【发布时间】:2020-06-18 06:14:20
【问题描述】:

大家好,我正在使用 Facebook 登录。在我的应用程序中,我需要获取 Facebook 用户的电子邮件并将其插入可以重用的变量中,但我遇到了问题,因为在此调用之外,GraphRequest 的请求结果不可见

GraphRequest(graphPath: _, parameters: _, tokenString: _, version : _, httpMethod: _)

es.

   let request = GraphRequest(graphPath: "me", parameters: ["fields":"email"], tokenString: authToken, version: nil, httpMethod: HTTPMethod(rawValue: "GET"))
   request.start { (connection, result, error) in

        if error != nil { print(error!)}

        else {

             if let result = result as? [String:String], 
                let email: String = result["email"] {

                // "email" is not readable outside this function .. 
                // "email" outside this function is always nil
             }
           }
         }

我该如何解决?

【问题讨论】:

    标签: ios swift string facebook variables


    【解决方案1】:

    1) 首先,确保您有permission 来获取用户电子邮件

    2) 然后您可以将其保存到UserDefaultsKeychain 中,您可以根据需要进一步使用它。


    这里是Keychainwrapper,您可以使用它进行简化

    也适用于UserDefaults方式:

    let email: String = result["email"] {
     UserDefaults.standard.set(email, forKey: "userEmail") 
    }
    
    //...
    let email = UserDefaults.standarts.string(forKey: "userEmail")
    

    但要小心通过电子邮件发送敏感数据,许多开发人员建议将其保存到Keychain 而不是UserDefaults

    【讨论】:

    • 谢谢!..我已经考虑过使用钥匙串(KeychainSwift)......事实上我认为这是最好的事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多