GTMOAuth 2.0 似乎是 iOS 上 OAuth 2.0 验证的绝佳工具。我正在尝试通过在 Xcode 中实现 GTMOAuth-2 来检索 Google 用户的全名和电子邮件,但遇到了一些麻烦。基于这个答案:Retrieve User email using GTM OAuth2 for iOS,它应该像调用一样简单auth.userEmail
。auth.userEmail
但是,问题是在以下代码段中调用总是返回null
:
- (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
. 我是否需要使用 GTMOAuth 2.0 的Fetcher
对象向 Google 电子邮件端点发出请求,或者发送额外的 HTTP GET 请求以使用 检索用户的电子邮件auth.accessToken
?