Как запросить разрешение на получение электронной почты пользователя с помощью twitter kit версии 1.2.0 в ios8?

Я включил твиттер-комплект в свое приложение ios, выполнив https://dev.twitter.com/twitter-kit/ios/configure. Я могу войти в систему после аутентификации и легко увидеть мое имя Twitter, но теперь я хочу получить свой адрес электронной почты, поэтому я использовал TWTRShareEmailViewController, который представляет пользователю общий доступ к электронной почте, который возвращает null. Я просмотрел документы, в которых они упоминали о моем приложении, для того, чтобы запросить разрешение на электронную почту, и сказал, чтобы заполнить эту форму https://support.twitter.com/forms/platform, не получая, что делать дальше? как получить разрешение пользователя электронной почты пользователя точно? Предложите любую помощь. Спасибо заранее.

Ответ 1

Я не нашел конкретную форму, чтобы попросить, чтобы она не была включена в белый список. Я пошел по ссылке https://support.twitter.com/forms/platform, и я проверил параметр" У меня есть вопрос политики API, не охваченный этими точками". Они ответили через несколько дней и спросили меня больше информации о приложении и его идентификаторе приложения. Я действительно жду их ответа.

EDIT:

Итак, после нескольких (много) писем с [email protected] и несколькими ошибками я наконец получил белый список. Но этот вариант в настоящее время недоступен для Fabric, поэтому вам нужно будет создать приложение Twitter на apps.twitter.com. Просто отправьте письмо с вашим идентификатором приложения или вашими ключами. Вероятно, они спросят вас о быстром описании вашего приложения, и не нужно тратить столько времени, чтобы быть включенным в белый список. Удачи!

Ответ 2

После разговора с [email protected] я получил свое приложение в белом списке. Вот история:

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

  • Они рассмотрят ваше приложение и ответят вам в течение 2-3 рабочих дней.

  • Как только они скажут, что ваше приложение включено в белый список, обновите настройки своего приложения в портале разработчиков Twitter. Войдите в apps.twitter.com и:

    • На вкладке "Настройки" добавьте URL-адрес условий обслуживания и политики конфиденциальности
    • На вкладке "Разрешения" измените область маркера для запроса электронной почты. Этот параметр будет отображаться только после того, как ваше приложение будет включено в белый список.

Время для кода:

-(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)
    }
}

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

Ответ 3

Отправьте электронное письмо на адрес [email protected], чтобы сначала добавить в белый список ваше приложение для входа в твиттер.

Swift 3.0 Код с тканью

@IBAction func btnTwitterAction(_ sender: AnyObject) {
        Twitter.sharedInstance().logIn { (session, error) in
            if session != nil {
                print("signed in as \(session!.userName)");
                let client = TWTRAPIClient.withCurrentUser()
                let request = client.urlRequest(withMethod: "GET",
                                                url: "https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true",
                                                          parameters: ["include_email": "true", "skip_status": "true"],
                                                          error: nil)
                client.sendTwitterRequest(request) { response, data, connectionError in
                    if (connectionError == nil) {

                        do{
                            let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String:Any]
                            print("Json response: ", json)
                            let firstName = json["name"]
                            let lastName = json["screen_name"]
                            let email = json["email"]
                            print("First name: ",firstName)
                            print("Last name: ",lastName)
                            print("Email: ",email)
                        } catch {

                        }

                    }
                    else {
                        print("Error: \(connectionError)")
                    }
                }


            } else {
                NSLog("Login error: %@", error!.localizedDescription);
            }
        }
    }

Ответ 4

Как получить идентификатор электронной почты в твиттере?

Шаг 1: добрался до https://apps.twitter.com/app/

Шаг 2: нажмите на приложение ur > щелкните вкладку разрешения.

Шаг 3: здесь проверьте почтовый ящик

введите описание изображения здесь

Ответ 5

Недавно я столкнулся с той же проблемой

Вот что вам следует попробовать, если вы используете новый комплект Twitter.

Перейдите к

  • https://apps.twitter.com/
  • Выберите вкладку "Права доступа"
  • Установите его только для чтения

Код:

Twitter.sharedInstance().logIn(withMethods: [.webBased,.systemAccounts,.all]) {(session, error) -> Void in

        if (session != nil) {
            print("signed in as \(session?.userName)");

            let client = TWTRAPIClient(userID: session?.userName)
            client.loadUser(withID: (session?.userID)!, completion: { (user, error) in

                let twitterClient = TWTRAPIClient.withCurrentUser()
                let request = twitterClient.urlRequest(withMethod: "GET",
                                                url: "https://api.twitter.com/1.1/account/verify_credentials.json",
                                                parameters: ["include_email": "true", "skip_status": "true"],
                                                error: nil)


                twitterClient.sendTwitterRequest(request) { response, data, connectionError in

                    print(data!)

                    let s :String = String(data: data! as Data, encoding: String.Encoding.utf8)!
                    //
                    //            let json = try JSONSerialization.jsonObject(with: responseData as Data, options: JSONSerialization.ReadingOptions.mutableLeaves) as? [String:AnyObject]
                    //

                    Twitter.sharedInstance().sessionStore.logOutUserID((session?.userID)!)

                    if let data = s.data(using: String.Encoding.utf8) {
                        do {
                            let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String:Any]
                            print(json!)

                        } catch {
                            print("Something went wrong")
                        }
                    }
                }
            })

        } else {
   }