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