Я пытаюсь реализовать вход в Google+ в приложении iOS, используя язык Swift.
Мой код выглядит так:
var kClientId = "My Client ID from Dev Console"
var signIn = GPPSignIn.sharedInstance()
signIn.shouldFetchGooglePlusUser = true
signIn.shouldFetchGoogleUserEmail = true
signIn.shouldFetchGoogleUserID = true
signIn.clientID = kClientId
signIn.scopes = [kGTLAuthScopePlusLogin]
signIn.delegate = self
signIn.authenticate()
В целях тестирования я создал этикетку и хотел изменить ее на электронную почту пользователя, который вошел в систему.
if (GPPSignIn.sharedInstance().userID != nil) {
var user = GPPSignIn.sharedInstance().googlePlusUser
userName.text = user.name.JSONString()
if (user.emails != nil){
userEmailLable.text = user.emails.first?.JSONString() ?? "no email"
} else {
userEmailLable.text = "no email"
}
} else {
println("User ID is nil")
}
После того, как я нажму кнопку «Войти», откроется вкладка Safari, и я могу ввести свой адрес электронной почты и пароль Google, он запрашивает разрешения для определенных вещей и после нажатия кнопки «Принять» возвращается обратно в приложение. Мой userEmailLable не изменяется, и в качестве вывода он выводит «User ID is nil». Это происходит постоянно и не было ни одного успешного входа в систему.
Мои фреймворки Google все в порядке, URL-адреса тоже правильные, в консоли разработчика Google все в порядке.
Файл AppDelegate.swift также включает эту функцию
func application(application: UIApplication, openURL url: NSURL, sourcApplication: String, annotation: AnyObject?) -> Bool {
return GPPURLHandler.handleURL(url, sourceApplication: sourcApplication, annotation: annotation)
}
Кто-нибудь знает, почему это так? Спасибо!