Я интегрировал набор для твиттера в свое приложение для iOS, следуя https://dev.twitter.com/twitter-kit/ios/configure это. Я мог войти в систему после аутентификации и легко увидеть свое имя в Твиттере, но теперь я хочу получить свой адрес электронной почты, поэтому я использовал TWTRShareEmailViewController, который предоставляет пользователю общий вид электронной почты, который возвращает ноль. Я просмотрел документы, где они упомянули о том, что мое приложение должно быть внесено в белый список для запроса разрешения по электронной почте, и сказали заполнить эту форму https://support.twitter.com/forms/platform не понимаю, что делать дальше? как точно получить разрешение электронной почты пользователя? Предложите любую помощь. Заранее спасибо.
как запросить разрешение на получение электронной почты пользователя с помощью twitter kit версии 1.2.0 в ios8?
Ответы (5)
Я также не нашел конкретной формы, чтобы попросить внести меня в белый список. Я перешел по ссылке их формы https://support.twitter.com/forms/platform и я отметил опцию «У меня есть вопрос политики API, не охваченный этими пунктами». Они ответили через несколько дней и попросили меня получить дополнительную информацию о приложении и его идентификаторе приложения. Я действительно жду их ответа.
РЕДАКТИРОВАТЬ:
Итак, после нескольких (много) писем с [email protected] и нескольких ошибок я, наконец, попал в белый список. Но в настоящее время этот параметр недоступен для Fabric, поэтому вам придется создать приложение Twitter на apps.twitter.com. Просто отправьте письмо с идентификатором вашего приложения или вашими ключами. Они, вероятно, попросят вас дать краткое описание вашего приложения, и попадание в белый список не займет много времени. Удачи!
После разговора с [email protected]
мое приложение попало в белый список. Вот история:
Отправьте письмо на
[email protected]
с некоторыми подробностями о вашем приложении, такими как потребительский ключ, ссылка на приложение в App Store, ссылка на политику конфиденциальности, метаданные, инструкции о том, как войти в наше приложение. Упомяните в почте, что вы хотите получить доступ к адресу электронной почты пользователя внутри вашего приложения.Они рассмотрят ваше приложение и ответят вам в течение 2-3 рабочих дней.
Как только они скажут, что ваше приложение добавлено в белый список, обновите настройки своего приложения на портале разработчиков Twitter. Войдите на сайт apps.twitter.com и:
- On the 'Settings' tab, add a terms of service and privacy policy 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)
}
}
Надеюсь, поможет !!!
Отправьте электронное письмо на адрес [email protected]
, чтобы сначала добавить приложение для входа в Twitter в белый список.
Swift 3.0 Code с тканью
@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);
}
}
}
Как получить идентификатор электронной почты в твиттере?
Шаг 1. Перейдите на страницу https://apps.twitter.com/app/.
Шаг 2: нажмите на ваше приложение> нажмите на вкладку разрешений.
Шаг 3: здесь проверьте почтовый ящик
Недавно я столкнулся с той же проблемой
Вот что вы должны попробовать, если используете новый набор для твиттера
Go to
- 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 {
}