我现在将我的应用程序列入 Twitter 的白名单,以便在他们登录时能够获取他们的电子邮件地址,并且我使用 TweetSharp 作为我的库来对用户进行身份验证,但我没有看到将参数传递给使用该库请求他们的电子邮件地址。我知道这是一个旧库,而且我认为请求用户的电子邮件相对较新,所以也许不挖掘源代码、更新它并重新编译程序集是不可能的?
如果有人能够使用 TweetSharp 完成此操作,请告诉我。
TIA
请您参考如下方法:
在对 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
它需要进行一些重大重构才能使其成为具有生产值(value)的实现,但我认为它可能对其他人有用,因为它非常清楚地分解了不同的流程。希望其他人可以利用它。
关键部分(用于检索电子邮件)在 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 时我确实玩得很开心……太久了 :)
