GTMOAuth 2.0 - отличный инструмент для проверки OAuth 2.0 на iOS. Я пытаюсь получить полное имя и адрес электронной почты пользователя Google, внедряя GTMOAuth-2 в Xcode, но у меня проблемы. На основании этого ответа: Retrieve User email using GTM OAuth2 for iOS, это должно быть так же просто, как позвонить auth.userEmail
. Однако, проблема в том, что вызов auth.userEmail
в следующем фрагменте кода всегда возвращает null
:GTM OAuth 2.0 на iOS - получение электронной почты пользователя
- (void)viewController:(GTMOAuth2ViewControllerTouch *)viewController
finishedWithAuth:(GTMOAuth2Authentication *)auth
error:(NSError *)error
{
NSLog(@"finished");
NSLog(@"auth access token: %@", auth.accessToken);
[self.navigationController popToViewController:self animated:NO];
if (error != nil) {
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Error Authorizing with Google"
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
} else {
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Success Authorizing with Google"
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
NSLog(@"email: %@",auth.userEmail);
}
Код выполняется успешно и получает маркер доступа, но auth.userEmail
всегда null
. Нужно ли делать запрос к конечной точке электронной почты Google с использованием объекта GTMOAuth 2.0 Fetcher
или иным образом отправлять дополнительный HTTP-запрос GET для извлечения электронной почты пользователя с помощью auth.accessToken
?