如何使用Hybridauth获取Twitter用户的电子邮件


How to get the Twitter user's email using Hybridauth?

有谁能帮助我如何获得Twitter的电子邮件吗我使用这个链接在php codeigniter在这里我得到我的信息,除了电子邮件。那么如何获取邮件呢?是否需要我们在配置文件中指定范围?

你不能。

Twitter API不提供对用户电子邮件地址的访问


以下是一位Twitter员工对同样问题的回答

API不会返回电子邮件地址给你。如果您对用户的电子邮件地址感兴趣,您必须在您自己的应用程序中向用户询问它,这是一个完全不同的行为。

我回答这个问题只是晚了几年,但我还是要回答这个问题。

你可以! !

查看这个问题已经解决和解答的链接。

  • 基本上,您首先需要通过提供您的隐私政策url和条件条款url从twitter开发人员帐户获得提升权限。

  • 在获得twitter开发支持的邮件访问权限后应用此步骤。

    /public_html/application/config/hybridauthlib.php

并将:"includeEmail" => true添加到Twitter提供商。

"Twitter" => array (
"enabled" => true,
"keys" => array ( "key" => "Your_Twitter_App_Key", "secret" => "Your_Twitter_Secret_Key" ),
"includeEmail" => true,
)

现在应该可以了。首先,把你的应用列入白名单。

https://support.twitter.com/forms/platform70[我在github中添加了演示链接的youtube链接和应用程序url]并点击"提交"按钮。

接下来,你会收到第一封来自twitter的邮件(如果你没有收到twitter的邮件,重新填写表格并再次发送),上面写着"谢谢你的帮助"。几个小时后,你会收到第二封邮件,说url应用被列入白名单。

一旦他们说你的应用被列入白名单,更新你的应用在Twitter开发者门户的设置。登录到apps.twitter.com和:

在"设置"选项卡上,添加服务条款和隐私政策URL在"权限"选项卡上,更改令牌的范围以请求电子邮件。只有当你的应用被列入白名单时,这个选项才会被看到。

接下来,您可能需要在https://apps.twitter.com中重新生成访问令牌,还要使用https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true来获取用户的电子邮件地址

我使用的是CodeIgniter版本的HybridAuth库,在这个文件

应用程序/应用程序/third_party hybridauth/混合/供应商/Twitter.php

修改了这一行

$response = $this->api->get( 'account/verify_credentials.json' );

到下面一个

$response = $this->api->get( 'account/verify_credentials.json',['include_entities' => 'true', 'skip_status' => 'true', 'include_email' => 'true'] );

还在返回用户配置文件

之前添加了下面一行
$this->user->profile->email      = (property_exists($response,'email'))?$response->email:"";

并开始接收电子邮件id