Я новичок в OAuth и экспериментировал с API Twitter. Я могу получить учетные данные пользователя после аутентификации, отправив запрос http://api.twitter.com/1/account/verify_credentials.xml
. Ответ содержит идентификатор пользователя, экранное имя и т. Д., Но не адрес электронной почты.
Можно ли вообще получить идентификатор электронной почты пользователя?
Обновить
Я считаю, что Facebook предоставляет эту информацию, если вы специально запрашиваете расширенные разрешения . Есть что-то подобное в Твиттере?
twitter
oauth
twitter-oauth
Манодж Говиндан
источник
источник
Ответы:
Адрес электронной почты пользователя не может быть получен через API. Это сознательное дизайнерское решение команды API.
ОБНОВЛЕНИЕ 2015.08.18:
У пользователей можно запросить адрес электронной почты, но для этого необходимо, чтобы ваше приложение было внесено в белый список. См. Https://dev.twitter.com/rest/reference/get/account/verify_credentials для получения подробной информации о вызове API и этой форме для запроса внесения вашего приложения в белый список.
источник
Для OutsourceFactor , который написан на Python / Django, я получаю имя пользователя через oAuth1, затем создаю электронное письмо как «username@twitter.com», которое гарантированно будет уникальным для всего твиттера. Затем я хеширую его, чтобы получить хороший UUID, который будет использоваться и связан с моей локальной учетной записью. То же самое и с Yahoo. Google и Facebook используют oAuth2, и они дают мне адрес электронной почты по запросу, что приятно.
Чтобы обеспечить множественные социальные ассоциации с одной учетной записью, я разрешаю ассоциации социальных учетных записей ТОЛЬКО после того, как пользователь локально создал учетную запись и вошел в систему.
Итак, вам нужно сначала создать учетную запись (локальную учетную запись), затем вы можете использовать любого из социальных провайдеров oAuth, чтобы упростить вход в систему в будущем. Это лучший вариант для моего сайта.
В любом случае, вы получаете уникальную форму идентификатора из твиттера. Так что просто используйте это. Вы можете запросить адрес электронной почты позже или до ассоциации.
источник
Адрес электронной почты скрывается Twitter в своих ответах OAuth. Что всегда было большой проблемой для людей, желающих включить функцию «Зарегистрироваться в Twitter».
Совсем недавно (в начале 2015 г.) Twitter добавил поддержку адресов электронной почты посредством второго обращения в службу поддержки, но при определенных условиях злоупотребления.
https://dev.twitter.com/rest/reference/get/account/verify_credentials
Так что теперь это возможно, но я считаю, что нужно продолжать реализацию единого входа OAuth для всех провайдеров, кроме твиттера. Их нужно бойкотировать до тех пор, пока они не начнут действовать нормально, то есть как любой другой провайдер OAuth.
источник
В Android с использованием Fabric я запрашиваю адрес электронной почты пользователя следующим образом:
См. Http://docs.fabric.io/android/twitter/request-user-email-address.html
источник
В моем случае каждый раз, когда я получаю ответ, я получаю уникальный идентификатор аутентификации для каждого пользователя и каждый раз такой же для этого пользователя. Поэтому я использовал этот идентификатор, чтобы создать электронное письмо, например unique_id@twitter.com, и проверить, есть ли он уже на моем сайте (в первый раз его нет), а затем зарегистрировать пользователя. Затем, если он входит в систему во второй раз, я снова создаю электронное письмо и проверяю, есть ли оно там. При этом мне не нужно заставлять его сначала создавать локальную учетную запись и идентифицировать его для входа в систему.
источник
Вот пример того, как получить электронную почту пользователя twitter в Laravel, а на coditty.com вы можете найти полный пример, используя Angular + Laravel.
источник
Я вошел в свое приложение iOS после добавления приложения в белый список. Проверьте мой ответ здесь .
источник
Добавьте этот код!
$params = array('include_email' => 'true', 'include_entities' => 'false', 'skip_status' => 'true');
// getting twitter user profile details $twt_id = $data->id; //twitter user id $twt_email = $data->email; //twitter user email
Полная процедура оформления заказа здесь .
источник
Кто сказал, что вы не можете получить электронную почту пользователей, флажок «Запрашивать адреса электронной почты у пользователей» доступен в разрешениях приложения на сайте apps.twitter.com . Поля «URL-адрес политики конфиденциальности» и «URL-адрес условий обслуживания» должны быть заполнены в настройках приложения, чтобы доступ к адресу электронной почты работал. Если этот параметр включен, пользователи будут проинформированы через диалоговое окно oauth / authorize, что ваше приложение может получить доступ к их адресу электронной почты.
источник