使用C#和OAuth从Twitter获取用户的电子邮件地址

时间:2016-06-10 22:41:29

标签: c# .net twitter oauth tweetsharp

我现在将我的应用程序列入Twitter白名单,以便在他们登录时能够获取他们的电子邮件地址,并且我使用TweetSharp作为我的库来验证用户,但我没有看到通过的方法在参数中使用该库请求其电子邮件地址。我知道它是一个旧图书馆,我认为请求用户的电子邮件是相对较新的,所以也许它不可能不通过挖掘源,更新它并重新编译程序集?

如果有人能用TweetSharp完成此任务,请告诉我。

TIA

2 个答案:

答案 0 :(得分:2)

稍微挖掘一下TweetSharp的来源后,我在层层叠层中相当迷失......就像试图在20个干草堆中找到针一样。我很欣赏Tweetinvi Linvi的链接,但我今晚决定锻炼一下我的大脑,看看我是否可以从头开始编写它。

我花了一些时间来查看我在Twitter上可以找到的内容以及他们做的方式OAuth超出了时髦。然后我找到了一个处理OAuth的PHP解决方案并稍微调整一下以使其返回电子邮件地址。有了这个,我将PHP翻译成C#,并将其全部用于我自己的家庭解决方案。

我刚刚在这里发布了我的工作解决方案:http://www.burritostand.com/log-in-to-twitter-with-oauth-and-c-sharp-and-get-twitter-user-email

它需要一些重大的重构才能使它成为一个有价值的实现,但我认为它可能对其他人有用,因为它可以非常清楚地分解不同的过程。希望其他人可以利用它。

关键部分(用于检索电子邮件)位于TwitterClient类的参数列表中:

        TwitterUrls TwitterUrls = new TwitterUrls("https://api.twitter.com/1.1/account/verify_credentials.json");
        List<KeyValuePair<string, string>> Parameters = new List<KeyValuePair<string, string>>();
        Parameters.Add(new KeyValuePair<string, string>("include_email", "true")); // this is the important part for getting the email returned
        Parameters.Add(new KeyValuePair<string, string>("oauth_consumer_key", ConsumerKey));
        Parameters.Add(new KeyValuePair<string, string>("oauth_nonce", Nonce));
        Parameters.Add(new KeyValuePair<string, string>("oauth_signature_method", "HMAC-SHA1"));
        Parameters.Add(new KeyValuePair<string, string>("oauth_timestamp", timestamp));
        Parameters.Add(new KeyValuePair<string, string>("oauth_token", dict["oauth_token"]));
        Parameters.Add(new KeyValuePair<string, string>("oauth_version", OAuthVersion));

我很感激答案,今晚我确实有一些乐趣可以回到PHP ...这是一个浪漫的时间:))

答案 1 :(得分:1)

Tweetinvi支持电子邮件。

var authenticatedUser = User.GetAuthenticatedUser();
var email = authenticatedUser.Email;

您可以在这里找到github上的项目:https://github.com/linvi/tweetinvi