2013-09-17 5 views
2

Я разрабатываю приложение iOs, и у меня есть логин с Facebook, LinkedIn, Google+ и Twitter. Все они позволяют мне читать мою электронную почту из моего профиля, используя API, EXCEPT Twitter.Получите мой адрес электронной почты Twitter

Есть ли способ получить мой адрес электронной почты?

Если нет, есть ли в twitter «внутренняя электронная почта», сгенерированное электронное письмо, например, в facebook ([email protected])?

Причина в том, что я использую электронную почту как идентификатор (первичный ключ) для пользователей в моей базе данных.

Большое вам спасибо.

ответ

3

Нет, адрес электронной почты не доступны через API Twitter: https://dev.twitter.com/discussions/1737

Не существует какой-либо «внутренняя электронная почта» доступны, вы должны использовать имя пользователя щебет и попросите пользователя сюда есть адрес электронной почты.

1

Вам необходимо использовать Twitter framework. Твиттер предоставил прекрасную инфраструктуру для этого, вам просто нужно интегрировать его в свое приложение.

Чтобы получить адрес электронной почты пользователя, ваше приложение должно быть в белом списке. Вот link. Перейдите по ссылке use this form. Вы можете отправить почту на сайт [email protected] с некоторыми подробностями о вашем приложении, например, в разделе «Ключ потребителя», «App Store» в приложении, «Ссылка на политику конфиденциальности», «Метаданные», «Инструкции по входу в наше приложение и т. Д.». ответьте в течение 2-3 рабочих дней.

Вот история, как я получил белый список разговора с командой поддержки Twitter:

  • Отправить письмо на [email protected] с некоторыми подробностями о вашем App как ключ потребителя, App Store звено в App, Ссылка на частную жизнь политика, метаданные, инструкции о том, как войти в наше приложение. Укажите в почте, что вы хотите получить доступ к адрес электронной почты пользователя в своем приложении.

  • Они просмотрят ваше приложение и ответят вам 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); 
    } 
} 

Надеюсь, это поможет !!!

Смежные вопросы