2014-03-25 51 views
40

如何获取接受我的Twitter应用程序的用户的电子邮件ID?我们可以从Twitter oauth API获取电子邮件ID吗?

我经历了很多论坛。但他们提到,这是不可能的。这些帖子也比一年前更长。我是否可以通过使用PHP的twitter API获取用户电子邮件ID?

我使用以下网址获取Twitter的用户详细信息:

https://api.twitter.com/1.1/account/verify_credentials.json

+0

在这里,我会得到一个解决方案还通过供应商提到的问题。 (即)如何处理这种情况.. –

+0

我无法在Twitter文档中找到它!只能从Twitter社区论坛中找到答案:https://twittercommunity.com/t/twitter-oauth-after-connect-get-primary-email-address/1563/11 – jonprasetyo

+2

@PaulDessert这位特定供应商员工的成员声明在公共[论坛]上(https://twittercommunity.com/t/how-to-get-email-from-twitter-user-using-oauthtokens/558/175)他们已经实现了功能而没有记录它。当然,有人(比如功能开发人员)知道如何使用该功能,尽管它没有出现在API文档中。这些人可能能够提供像Vinoth帮助他在别处找不到的人。 – jeteon

回答

86

这是现在可以通过填写表格以申请elevated permissions

  1. 转到https://support.twitter.com/forms/platform
  2. 选择“我需要访问特殊权限”
  3. 输入应用程序名称和ID。这些可以通过https://apps.twitter.com/获得 - 应用程序ID是您单击应用程序后浏览器地址栏中的数字部分。
  4. 权限请求:“电子邮件地址”
  5. 提交&等待响应
  6. 您的请求已得到批准之后,添加允许设置你的Twitter应用程序的“权限”节中添加。转到“其他权限”,然后勾选“请求用户的电子邮件地址”复选框。

请注意,用户的电子邮件地址必须经过验证,否则Twitter拒绝提供。 (见include_email参数描述elevated permissions文档页。)

+1

我从来不知道这个现在存在,非常感谢! –

+1

他们是否真的很容易授予此权限?或者它只是保留已经成功的应用程序? – anges244

+1

@ anges244看起来他们确实很容易,至少对于从未有过投诉的开发者来说。我的应用程序甚至不能在线访问,所以他们不能查看它。 – tremby

4

这是不可能的从Twitter获取用户的电子邮件地址。你可以看到它here。您可以在回电页面上打开表格页面,并在该页面上获取用户的电子邮件地址。例如,您可以参考here

+0

Huseyin BABAL:谢谢你的回复。我可以知道dev.twitter.com的链接,我可以向你保证。所以我可以把它展示给客户,并开始探索。 –

+0

你可以参考这里https://dev.twitter.com/docs/faq#6718 –

+0

谢谢男人。我会照你的话去做。 –

6

现在可以从Twitter中检索用户的电子邮件地址(当然,如果用户允许的话)。

您需要申请将您的应用程序列入白名单才能接收xAuth。

在这里获得更多的信息: https://dev.twitter.com/rest/reference/get/account/verify_credentials

+1

您应该提到“xAuth不适用于基于Web的应用程序”。这就是为什么你的回答不适用于操作系统的问题。 – TNT

1

下面是我在ASP.Net使用linqtoTwitter库 http://www.bigbrainintelligence.com/Post/get-users-email-address-from-twitter-oauth-ap

// call verify credentials api 
var twitterCtx = new TwitterContext(authTwitter); 
var verifyResponse = 
     await 
      (from acct in twitterCtx.Account 
      where (acct.Type == AccountType.VerifyCredentials) && (acct.IncludeEmail == true) 
      select acct) 
      .SingleOrDefaultAsync(); 

if (verifyResponse != null && verifyResponse.User != null) 
{ 
    User twitterUser = verifyResponse.User; 
    //assign email to existing authentication object 
    loginInfo.Email = twitterUser.Email; 

} 
+0

您使用的凭证存储是什么?我尝试了他们的代码示例,但只返回“我的”用户帐户信息 - 不是刚登录的用户的用户信息。 –

26

现在,您可以获取从Twitter API的用户电子邮件地址来实现这而且要容易得多。只需按照以下步骤操作

  1. 转到Twitter Apps

  2. 点击 '创建新的应用程序'

  3. 填充所有所需的凭证,然后单击 '创建你的Twitter应用程序'

  4. 现在点击 '权限'选项卡 - >选中'请求用户的电子邮件地址'字段并点击'更新设置'。 (查看图片)

  5. 现在在您的PHP代码中,设置所有应用程序的详细信息并添加此代码!

    $params = array('include_email' => 'true', 'include_entities' => 'false', 'skip_status' => 'true');

    $data = $connection->get('account/verify_credentials', $params); // get the data

    // getting twitter user profile details $twt_id = $data->id; //twitter user id $twt_email = $data->email; //twitter user email

全部完成。 希望它能帮助你,祝你好运。 ;)

enter image description here

+2

找了差不多2个小时后,这就是解决方案。这应该是大量的upvoted。这是我的打字这一月的2017年1月7日。在互联网上找到的任何地方都没有其他方法可以使用。 –

+4

做完之后。还没有得到电子邮件地址。 – Dhirender

+1

同样,没有收到电子邮件.. – muaaz

0

是的,你可以得到电子邮件address.This现在通过填写一些权限可能。

1.Go此链接:https://apps.twitter.com/

2.After进入许可标签您创建的应用程序内

3.Select添加允许复选框,在您的应用程序。

4.成功更新设置后,您可以从Twitter获取电子邮件地址。

如果在某些情况下您无法获取电子邮件地址,请检查您的Oauth Api请求网址。

您要求的网址应该是这样的类型:https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true

相关问题