【问题标题】:Get my Twitter email获取我的 Twitter 电子邮件
【发布时间】:2013-09-17 08:35:55
【问题描述】:

我正在开发一个 iOs 应用程序,我已使用 Facebook、LinkedIn、Google+ 和 Twitter 登录。 所有这些都让我使用 API,EXCEPT Twitter 从我的个人资料中读取我的电子邮件。

有什么方法可以获取我的电子邮件

如果没有,Twitter 中是否有“内部电子邮件”,例如在 facebook (someone@facebook.com) 中生成的电子邮件?

原因是我使用电子邮件作为数据库中用户的标识符(主键)。

非常感谢。

【问题讨论】:

    标签: ios api twitter login social


    【解决方案1】:

    不,无法通过 Twitter API 获取电子邮件地址:https://dev.twitter.com/discussions/1737

    也没有任何“内部电子邮件”可用,您必须使用 twitter 用户名并询问用户的电子邮件地址。

    【讨论】:

      【解决方案2】:

      您将不得不使用 Twitter 框架。 Twitter 为此提供了一个漂亮的框架,您只需将其集成到您的应用中即可。

      要获取用户电子邮件地址,您的应用程序应该被列入白名单。这是link。转到use this form。您可以向 sdk-feedback@twitter.com 发送邮件,其中包含有关您的应用程序的一些详细信息,例如消费者密钥、应用程序的应用商店链接、隐私政策链接、元数据、如何登录我们的应用程序的说明等。他们将2-3个工作日内回复。

      这是我如何通过与 Twitter 支持团队的对话被列入白名单的故事:

      • 发送邮件至sdk-feedback@twitter.com,提供有关您的应用程序的一些详细信息,例如消费者密钥、应用程序的应用商店链接、隐私政策链接、元数据、如何登录我们的应用程序的说明。在邮件中提及您希望在您的应用中访问用户电子邮件地址。

      • 他们将审核您的应用并在 2-3 个工作日内回复您。

      • 一旦他们说您的应用已列入白名单,请在 Twitter 开发者门户中更新您的应用设置。登录apps.twitter.com 并:

        1. 在“设置”选项卡上,添加服务条款和隐私政策 URL
        2. 在“权限”选项卡上,将令牌的范围更改为请求电子邮件。只有在您的应用被列入白名单后才能看到此选项。

      动手编写代码

      Twitter 框架的使用:

      获取用户电子邮件地址

      -(void)requestUserEmail
          {
              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 {
                  // Handle user not signed in (e.g. attempt to log in or show an alert)
              }
          }
      

      获取用户资料

      -(void)usersShow:(NSString *)userID
      {
          NSString *statusesShowEndpoint = @"https://api.twitter.com/1.1/users/show.json";
          NSDictionary *params = @{@"user_id": userID};
      
          NSError *clientError;
          NSURLRequest *request = [[[Twitter sharedInstance] APIClient]
                                   URLRequestWithMethod:@"GET"
                                   URL:statusesShowEndpoint
                                   parameters:params
                                   error:&clientError];
      
          if (request) {
              [[[Twitter sharedInstance] APIClient]
               sendTwitterRequest:request
               completion:^(NSURLResponse *response,
                            NSData *data,
                            NSError *connectionError) {
                   if (data) {
                       // handle the response data e.g.
                       NSError *jsonError;
                       NSDictionary *json = [NSJSONSerialization
                                             JSONObjectWithData:data
                                             options:0
                                             error:&jsonError];
                       NSLog(@"%@",[json description]);
                   }
                   else {
                       NSLog(@"Error code: %ld | Error description: %@", (long)[connectionError code], [connectionError localizedDescription]);
                   }
               }];
          }
          else {
              NSLog(@"Error: %@", clientError);
          }
      }
      

      希望对你有帮助!!!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-12
        • 1970-01-01
        • 2018-04-18
        • 1970-01-01
        • 2014-12-16
        • 1970-01-01
        • 2014-05-02
        • 2013-05-01
        相关资源
        最近更新 更多