oauth twitter和电子邮件

kus*_*agi 7 twitter oauth

是否有可能在用oauth登录后收到用户的电子邮件?可能是页面可以问他是否想在我的申请中分享他的电子邮件?或者任何允许的信息是由url http://api.twitter.com/1/users/show/test.xml(没有电子邮件)返回的内容?

Ric*_*ith 7

不会.出于安全原因,Twitter api不会共享电子邮件地址.

更新:Twitter已添加此功能.看看@ collerek的回答.

  • 我想它也可能是.最终结果是一样的. (2认同)

小智 6

对于任何感兴趣的人来说,这不再是真的.

按照此答案中的指南为您的Twitter应用程序请求特殊权限(电子邮件访问): 我们可以从Twitter oauth API获取电子邮件ID吗?

您需要在应用中提供有关您的使用条款和隐私政策的链接.然后在权限选项卡上,您可以勾选请求用户的电子邮件地址.

现在,当您查询Twitter API时,将"?include_email = true"附加到url(因此完整的URL将为" https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true ").该参数在twitter文档中描述:https://dev.twitter.com/rest/reference/get/account/verify_credentials

您可以使用此URL修改更新python-social-auth库中的twitter.py后端,它也可以工作;)

从twitter.py后端的第35行开始:

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)
)
Run Code Online (Sandbox Code Playgroud)

并包括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}
Run Code Online (Sandbox Code Playgroud)