【问题标题】:How to get the Twitter user's email using Hybridauth?如何使用 Hybridauth 获取 Twitter 用户的电子邮件?
【发布时间】:2012-12-14 08:07:44
【问题描述】:

任何机构都可以帮助如何获取 Twitter 电子邮件 我在 php codeigniter 中使用这个 link 在这里我得到我的信息,除了电子邮件。 那么如何获取邮件呢? 我们应该在配置文件中指定任何范围吗?

【问题讨论】:

    标签: php twitter hybridauth hybridauthprovider


    【解决方案1】:

    你不能。

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


    这是来自 Twitter 员工的 response to this same question

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

    【讨论】:

    • 你错了。 Twitter确实允许。检查我的anwser stackoverflow.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 时变得更容易。
      猜你喜欢
      • 2012-05-10
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-16
      • 1970-01-01
      • 2012-03-26
      相关资源
      最近更新 更多