Я интегрировал функцию входа через Google в свое приложение для iOS. Я хотел бы получить доступ к полу и возрасту пользователя. Документация недостаточно ясна, чтобы понять, как это сделать. Я понял, что должен запросить правильный объем. Я не нашел в документации официального списка областей видимости и не знаю, какую область мне следует использовать. Также я не знаю, как мне получить данные, когда я их получу. Буду признателен, если кто-нибудь поможет мне получить эту информацию от Google. Спасибо!
Вот мой код:
func googleLogin() {
self.appDelegate.setIdentityAvailableValue(false)
GIDSignIn.sharedInstance().clientID = kClientId
GIDSignIn.sharedInstance().shouldFetchBasicProfile = true
GIDSignIn.sharedInstance().delegate = self
GIDSignIn.sharedInstance().uiDelegate = self
GIDSignIn.sharedInstance().signInSilently()
}
func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
if (error == nil) {
let idToken = user.authentication.idToken
let url = NSURL(string: "https://www.googleapis.com/oauth2/v3/userinfo?access_token=\(user.authentication.accessToken)")
let session = NSURLSession.sharedSession()
session.dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in
//UIApplication.sharedApplication().networkActivityIndicatorVisible = false
if error != nil {
print("dataTaskWithURL error \(error)")
}
else {
do {
let userData = try NSJSONSerialization.JSONObjectWithData(data!, options:[]) as? [String:AnyObject]
/*
Get the account information you want here from the dictionary
Possible values are
"id": "...",
"email": "...",
"verified_email": ...,
"name": "...",
"given_name": "...",
"family_name": "...",
"link": "https://plus.google.com/...",
"picture": "https://lh5.googleuserco...",
"gender": "...",
"locale": "..."
so in my case:
*/
let gender = userData!["gender"] as! String
let locale = userData!["locale"] as! String
print("gender = \(gender)")
print("locale = \(locale)")
} catch {
NSLog("Account Information could not be loaded")
}
}
})
} else {
// some error handling code
}
}