【发布时间】:2012-12-14 08:07:44
【问题描述】:
任何机构都可以帮助如何获取 Twitter 电子邮件 我在 php codeigniter 中使用这个 link 在这里我得到我的信息,除了电子邮件。 那么如何获取邮件呢? 我们应该在配置文件中指定任何范围吗?
【问题讨论】:
标签: php twitter hybridauth hybridauthprovider
任何机构都可以帮助如何获取 Twitter 电子邮件 我在 php codeigniter 中使用这个 link 在这里我得到我的信息,除了电子邮件。 那么如何获取邮件呢? 我们应该在配置文件中指定任何范围吗?
【问题讨论】:
标签: php twitter hybridauth hybridauthprovider
Twitter API 不提供对用户电子邮件地址的访问权限
这是来自 Twitter 员工的 response to this same question
API 不会向您返回电子邮件地址。如果您对用户的电子邮件地址感兴趣,则必须在自己的应用程序中向用户索取,这是一种完全不同的行为。
【讨论】:
我迟到了几年才回答这个问题,但无论如何我都会回答。
你可以!!!
查看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,
)
【讨论】:
现在应该可以了。首先,将您的应用列入白名单。
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 来获取用户的电子邮件地址
【讨论】:
我使用的是 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
【讨论】: