如何使用 Hybridauth 获取 Twitter 用户的电子邮件?
Posted
技术标签:
【中文标题】如何使用 Hybridauth 获取 Twitter 用户的电子邮件?【英文标题】:How to get the Twitter user's email using Hybridauth? 【发布时间】:2012-12-14 08:07:44 【问题描述】:任何机构都可以帮助如何获取 Twitter 电子邮件 我在 php codeigniter 中使用这个 link 在这里我得到我的信息,除了电子邮件。 那么如何获取邮件呢? 我们应该在配置文件中指定任何范围吗?
【问题讨论】:
【参考方案1】:你不能。
Twitter API 不提供对用户电子邮件地址的访问权限
这是来自 Twitter 员工的 response to this same question
API 不会向您返回电子邮件地址。如果您对用户的电子邮件地址感兴趣,则必须在自己的应用程序中向用户索取,这是一种完全不同的行为。
【讨论】:
你错了。 Twitter确实允许。检查我的anwser ***.com/a/41943905/3193958 根据上述评论,这个答案现在在 2017 年是错误的。它不应该是公认的答案了。【参考方案2】:我迟到了几年才回答这个问题,但无论如何我都会回答。
你可以!!!
查看link,该问题已得到解决和答复。
基本上,您首先需要通过提供您的隐私政策 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,
)
【讨论】:
您还必须为用户电子邮件地址请求额外的权限。在权限部分链接apps.twitter.com/app【参考方案3】:现在应该可以了。首先,将您的应用列入白名单。
https://support.twitter.com/forms/platform70 [我已经为 DEMO LINK 添加了一个 youtube 链接,并在 github 中为 APPLICATION URL 添加了我的应用程序 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 来获取用户的电子邮件地址
【讨论】:
【参考方案4】:我使用的是 HybridAuth 库的 CodeIgniter 版本,并且在这个文件中
app/application/third_party/hybridauth/Hybrid/Providers/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
【讨论】:
我可能会创建自己的修改过的提供程序实现,而不是更改库的基本文件,并从 Twitter 继承并进行所需的修改。让您在以后将更新应用到 Hybridauth 时变得更容易。以上是关于如何使用 Hybridauth 获取 Twitter 用户的电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章
了解使用 HybridAuth 时的 base_url 参数
Facebook 使用 HybridAuth 登录显示错误您无法直接访问此页面