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

Get user's email address from Twitter with C# and OAuth

我现在将我的应用程序列入 Twitter 白名单,以便在他们登录时能够获取他们的电子邮件地址,并且我使用 TweetSharp 作为我的库来对用户进行身份验证,但我没有看到传递参数以使用该库请求他们的电子邮件地址。我知道这是一个旧库,我认为请求用户的电子邮件相对较新,所以可能无法 w/o 挖掘源代码、更新它并重新编译程序集?

如果有人能够使用 TweetSharp 完成此操作,请告诉我。

TIA

Tweetinvi 支持电子邮件。

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

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

在稍微挖掘了 TweetSharp 的源代码之后,我在一层又一层中迷失了……就像试图在 20 个干草堆中找到一根针一样。我很感谢 link 给 Tweetinvi Linvi,但我决定今晚稍微锻炼一下我的大脑,看看我是否可以从头开始写。

我花了一些时间查看我在 Twitter 上可以找到的内容,他们执行 OAuth 的方式非常时髦。然后,我找到了一个处理 OAuth 的 PHP 解决方案,并对它进行了一些调整,使其成为 return 电子邮件地址。有了这个,我将 PHP 翻译成 C# 并在我自己的自制解决方案中让它全部工作。

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

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

关键部分(用于检索电子邮件)在 TwitterClient class 中,在参数列表中:

        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 时我确实玩得很开心……太久了 :)