且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何通过iOS中的Twitter API获取用户电子邮件地址?

更新时间:2023-09-07 15:19:46

编辑

Twitter更新了API后,现在用户可以使用 TWTRShareEmailViewController 类获得电子邮件。

After Twitter has updated APIs, Now user can get Email using TWTRShareEmailViewController class.

// Objective-C
if ([[Twitter sharedInstance] session]) {
    TWTRShareEmailViewController* shareEmailViewController = [[TWTRShareEmailViewController alloc] initWithCompletion:^(NSString* email, NSError* error) {
        NSLog(@"Email %@, Error: %@", email, error);
    }];
    [self presentViewController:shareEmailViewController animated:YES completion:nil];
} else {
  // TODO: Handle user not signed in (e.g. attempt to log in or show an alert)
}

// Swift
if Twitter.sharedInstance().session {
  let shareEmailViewController = TWTRShareEmailViewController() { email, error in
    println("Email \(email), Error: \(error)")
  }
  self.presentViewController(shareEmailViewController, animated: true, completion: nil)
} else {
  // TODO: Handle user not signed in (e.g. attempt to log in or show an alert)
}

注意:
即使用户授予访问其电子邮件地址的权限,也不保证您将获得电子邮件地址。例如,如果有人使用电话号码而不是电子邮件地址注册Twitter,则电子邮件字段可能为空。发生这种情况时,完成块将传递错误,因为没有可用的电子邮件地址。

Twitter Dev Ref

过去

您可以通过方式获取Twitter用户的电子邮件地址。

There is NO way you can get email address of a twitter user.

Twitter API不会将用户的电子邮件地址作为OAuth令牌协商过程的一部分提供,也不提供其他方式来获取它。

The Twitter API does not provide the user's email address as part of the OAuth token negotiation process nor does it offer other means to obtain it.

Twitter Doc