是否有可能在用oauth登录后收到用户的电子邮件?可能是页面可以问他是否想在我的申请中分享他的电子邮件?或者任何允许的信息是由url http://api.twitter.com/1/users/show/test.xml(没有电子邮件)返回的内容?
小智 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)
| 归档时间: |
|
| 查看次数: |
2303 次 |
| 最近记录: |