Swift - Получить электронную почту пользователя из Facebook из GraphRequest - PullRequest
0 голосов
/ 05 марта 2020

Привет всем, я работаю с логином 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
             }
           }
         }

как я могу решить?

1 Ответ

1 голос
/ 05 марта 2020

1) Прежде всего, убедитесь, что у вас есть разрешение , чтобы получить пользователя email .

2) Затем вы можете сохранить его в UserDefaults или Keychain вы можете использовать его по своему усмотрению.


Вот Keychain упаковщик , который можно использовать для упрощения

Также для UserDefaults способ:

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

//...
let email = UserDefaults.standarts.string(forKey: "userEmail")

Но будьте осторожны, отправляйте по электронной почте конфиденциальные данные, и многие разработчики рекомендуют сохранять их в Keychain, а не UserDefaults.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...