有没有办法在使用OAuth验证他/她的Twitter身份后获取用户的电子邮件ID?

Man*_*dan 85 twitter oauth twitter-oauth

我是OAuth的新手,一直在玩Twitter API.通过发出请求,我可以在身份验证后获取用户的凭据http://api.twitter.com/1/account/verify_credentials.xml.响应包含用户ID,屏幕名称等,但不包含电子邮件ID.

是否可以检索用户的电子邮件ID?

更新

如果您特别要求扩展权限,我相信Facebook会提供此信息.Twitter有类似的东西吗?

DWR*_*nds 106

无法通过API检索用户的电子邮件地址.这是API团队经过深思熟虑的设计决策.

更新2015.08.18:

可以向用户请求电子邮件地址,但需要将您的应用列入白名单.有关API调用和此表单的详细信息,请参阅https://dev.twitter.com/rest/reference/get/account/verify_credentials以请求将应用程序列入白名单.

  • @KennyM.这不是很安全,我可以输入一些不属于我的帐户的电子邮件并与该帐户配对... (24认同)
  • 我们可以将其归档为bug,我非常需要经过身份验证的用户的电子邮件地址吗? (11认同)
  • 太糟糕了,正如你所说,**故意**的决定.如果您正在验证某人并拥有自己的用户数据库,则需要检查现有用户(具有相同的电子邮件)是否已存在. (9认同)
  • @JigneshBrahmkhatri我的应用程序中现有的User模型遇到了同样的问题,需要一个电子邮件地址.我通过执行额外步骤并向用户显示一个表单来完成缺少的信息. (4认同)
  • 当用户使用Twitter登录时,我还要求他们输入电子邮件地址,然后让他们在激活帐户之前对其进行验证.基本上我只是让他们使用他们的Twitter帐户而不是需要密码. (3认同)
  • 为什么不在oAuth流程之后询问他们的电子邮件?这就是我在我的应用程序中所做的. (2认同)

un3*_*33k 16

对于使用Python/Django编写的OutsourceFactor,我通过oAuth1获取用户名,然后构建一个"username@twitter.com"的电子邮件,保证在整个Twitter中都是唯一的.然后我哈希它以获得一个很好的UUID来使用并与我的本地用户帐户相关联.雅虎同样如此.谷歌和Facebook使用oAuth2,他们根据要求给我电子邮件地址很好.

为了确保与单个帐户的多个社交关联,我仅在用户本地创建帐户并登录后才允许社交帐户关联.

因此,您必须先创建一个帐户(本地帐户),然后您可以使用任何社交oAuth提供程序来简化您将来的登录.这对我的网站来说是最好的选择.

无论如何,你从twitter获得了一些独特的ID形式.所以只需使用它.您可以在关联之后或之前要求提供电子邮件地址.

  • "提供商可以放宽您未来的登录",我不同意这一点,因为您已经通过要求他们创建一个客户始终不喜欢填写的非常大的表格来创建本地帐户而给他们带来了麻烦. (4认同)