о твиттере и электронной почте - PullRequest
7 голосов
/ 07 декабря 2010

возможно ли получить электронную почту пользователя после того, как он зашел в oauth? Может быть, страница может спросить его, хочет ли он поделиться своей электронной почтой в моем приложении? или любая разрешенная информация - это то, что возвращается по URL http://api.twitter.com/1/users/show/test.xml (без электронной почты)?

Ответы [ 4 ]

7 голосов
/ 07 декабря 2010

Нет. API Twitter не предоставляет адреса электронной почты по соображениям безопасности.

Обновление: Twitter добавил эту функцию. Посмотрите на ответ @ collerek.

6 голосов
/ 27 января 2016

Для всех, кого это интересует, это уже не так.

Следуйте инструкциям в этом ответе, чтобы запросить специальную привилегию (доступ к электронной почте) для вашего приложения Twitter: Можем ли мы получить идентификатор электронной почты из Twitter oauth API?

Вам нужно будет предоставить ссылки для ваших условий использования и политики конфиденциальности в вашем приложении.Затем на вкладке разрешений вы можете поставить галочку «Запросить адреса электронной почты у пользователей».

Теперь, когда вы запрашиваете Twitter API, добавьте «? Include_email = true» в URL (таким образом, полный URL-адрес будет «https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true").»).параметр описан в документации твиттера: https://dev.twitter.com/rest/reference/get/account/verify_credentials

Вы можете обновить бэкэнд twitter.py в библиотеке python-social-auth с помощью этой модификации URL, и он тоже будет работать;)

Начиная со строки 35 в бэкэнде twitter.py:

def user_data(self, access_token, *args, **kwargs):
"""Return user data provided"""
return self.get_json(
'https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true',
auth=self.oauth_auth(access_token)
)

и включайте response.get ('email', '') несколькими строками выше:

def get_user_details(self, response):
        """Return user details from Facebook account"""
        fullname, first_name, last_name = self.get_user_names(
            response.get('name', ''),
            response.get('first_name', ''),
            response.get('last_name', '')
        )
        return {'username': response.get('username', response.get('name')),
                'email': response.get('email', ''),
                'fullname': fullname,
                'first_name': first_name,
                'last_name': last_name}
0 голосов
/ 17 ноября 2016

Теперь вы можете получить адрес электронной почты пользователя Twitter. Оформить заказ полностью здесь .

0 голосов
/ 22 июля 2016

Я использую от Twiterizzer до C#.Мое приложение уже занесено в белый список, поэтому теоретически я могу получить зарегистрированную электронную почту пользователя.

Я делаю это:

OAuthTokenResponse response = OAuthUtility.GetRequestToken(key, secret, myurl); 
Uri authorizationUrl = OAuthUtility.BuildAuthorizationUri(response.Token);
Response.Redirect(authorizationUrl.AbsoluteUri);

И когда я получаю токен:

OAuthTokenResponse response = OAuthUtility.GetAccessToken(key, secret, receivedToken, receivedVerifier);

Этот ответ имеет UserId и SreenName.

Что мне не хватает в моем коде для письма?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...