如何使用twitter api获取twitter用户的电子邮件地址

时间:2012-05-01 06:23:45

标签: c# asp.net api twitter

我想在我的网站上插入“使用Twitter登录”,我的网站需要在用户允许我的Twitter应用程序访问其数据后获取用户的twitterID和电子邮件。我浏览了一下twitter开发文档,但似乎总是关于带有复杂示例的OAuth。是否有捷径可寻?我已经为facebook添加了相同类型的插件,而且非常简单。谢谢!

7 个答案:

答案 0 :(得分:8)

如果twitter没有提供任何API,那么foursquare如何检索它们?

  • Foursquare已经规定列出用户的foursquare - 已经在twitter上注册的朋友。
  • 它还提供API,显示通常出现在'foursquare朋友列表'中的用户的朋友以及用户的'twitter粉丝列表'。

在上述两种情况下,只能通过电子邮件进行比较。

答案 1 :(得分:6)

您可以通过方式获取Twitter用户的电子邮件地址。 Twitter没有提供它:https://dev.twitter.com/docs/faq#6718

答案 2 :(得分:4)

来自twitter api FAQ https://dev.twitter.com/docs/faq

  

如何获取用户的电子邮件地址?

     

如果您想要用户的电子邮件地址,则需要向用户询问   在您自己的应用程序和服务的范围内。 Twitter   API不会将用户的电子邮件地址作为OAuth的一部分提供   令牌协商过程也没有提供其他方法来获取它。

答案 3 :(得分:1)

转到https://support.twitter.com/forms/platform 选择“我需要访问特殊权限” 输入应用程序名称和ID。这些可以通过https://apps.twitter.com/获得 - 单击您的应用后,应用程序ID是浏览器地址栏中的数字部分。 权限请求:“电子邮件地址” 提交&等待回应 在您的请求被授予后,您的Twitter应用程序的“权限”部分中会添加一个添加权限设置。转到“其他权限”,然后勾选“请求用户发送电子邮件地址”复选框。

答案 4 :(得分:0)

Twitter没有提供电子邮件地址,这就是许多使用OAuth的网站没有实现Twitter的原因;因为用户的电子邮件地址是注册过程的一部分。

答案 5 :(得分:0)

没有办法通过Twitter收到电子邮件,推特不会在api响应中提供电子邮件。

see official twitter api link:

答案 6 :(得分:0)

我正在使用C#.Net,我使用了Tweetinvi API,它易于使用并且具有良好的文档。

很好地回答你的问题,可以获得用户的电子邮件和所有数据。

第一:您需要在“apps.twitter.com”上创建您的Twitter应用并注册。然后在应用管理中,您将找到“权限”选项卡,在页面的末尾有一个复选框,显示您是否需要电子邮件信息。您必须提供指向您的隐私条款的链接,以便用户可以阅读并同意与您的应用分享信息,您可以使用“https://google.com”,但建议您提供有效的链接。

就是这样。在代码中,您只需要对用户进行身份验证并获取所需的数据。

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tweetinvi;
using Tweetinvi.Models;

namespace APIS
{
    public class TwitterConfig
    {
        IAuthenticationContext authenticationContext;

        /// <summary>
        /// Le indica a twitter que va a hacer una consulta de crendenciales. Esta consulta va a generar un PIN en caso de que sea correcto
        /// y el usuario tiene que digitar el pin.
        /// </summary>
        public void RequestForCredentials()
        {
            var appCredentials = new TwitterCredentials("CONSUMER-KEY", "CONSUMER-SECRET"); //GET THE CONSUMER INFORMATION ON THE TWITTER APP MANAGEMENT

            authenticationContext = AuthFlow.InitAuthentication(appCredentials);


            //This opens a web-browser and asks to the twitter client 
            //to accept the terms, and twitter gives a code and the user
            // have to introduce it on the app (use the AuthByPin(String pin) method )
            //Thats the PIN for auth the user and then get the data
            Process.Start(authenticationContext.AuthorizationURL);
        }

        /// <summary>
        /// Metodo que solicita un PIN que un usuario de Twitter al aceptar las condiciones se le brindó y este lo introdujo en la app
        /// para ser autenticado.
        /// </summary>
        /// <param name="pin">PIN del usuario</param>
        /// <returns>IAuthenticatedUser devuelve el usuario autenticado y con todos los datos.</returns>
        public IAuthenticatedUser AuthByPin(String pin) 
        {
            try
            {
                // Con este código PIN ahora es posible recuperar las credenciales de Twitter 
                var userCredentials = AuthFlow.CreateCredentialsFromVerifierCode(pin, authenticationContext);

                // Use las credenciales del usuario en su aplicación 
                Auth.SetCredentials(userCredentials);

                var user = User.GetAuthenticatedUser();
                return user; 
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw new ApplicationException("Problema al autenticar.", e);
            }
        }
    }
}
</code>

如果您有问题请问我