从Twitter获取2个(或更多)用户的时间轴
本文关键字:用户 时间 获取 Twitter 2个 | 更新日期: 2023-09-27 18:07:49
我试图在一个列表中获得2个或更多用户的时间轴,然后按日期排序并在listview中显示
目前我有以下内容:-
Contacts searchTerm1 = cmbContact.SelectedItem as Contacts;
if (searchTerm1 != null)
{
contactList = GetCurrentContacts(searchTerm1.CatID);
foreach (var contact in contactList)
{
GetTweetResults(contact.Username);
foreach (var contactTweet in _contactTweets)
{
_allContactTweets.Add(contactTweet);
}
}
TweetList1.ItemsSource = _allContactTweets;
}
和我得到推文Async
private void GetTweetResults(string user)
{
WebClient twitterAccess = new WebClient();
twitterAccess.DownloadStringCompleted += new DownloadStringCompletedEventHandler(twitterAccess_DownloadStringCompleted);
twitterAccess.DownloadStringAsync(new Uri("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=" + user));
}
private void twitterAccess_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs args)
{
try
{
XElement xmlTweets = XElement.Parse(args.Result);
var contactTweets = (from tweet in xmlTweets.Descendants("status")
select new ContactTweet
{
ProfileImage =
tweet.Element("user").Element("profile_image_url").Value,
TweetText = tweet.Element("text").Value,
UserName = tweet.Element("user").Element("screen_name").Value,
Created = (tweet.Element("created_at").Value.ParseDateTime())
}).ToList();
foreach (var contactTweet in contactTweets)
{
_contactTweets.Add(contactTweet);
}
}
catch (Exception exception)
{
MessageBox.Show("Error downloading tweets - " + exception.Message);
}
}
}
现在我的想法是,在GetTweetResults,等待twitterAccess_DownloadStringCompleted完成,然后继续这个过程,但我不知道如何做到这一点。
谁能告诉我如何实现这一点?
感谢您的帮助和时间
更新设法把它降到
WebClient twitterAccess = new WebClient();
twitterAccess.DownloadStringCompleted += new DownloadStringCompletedEventHandler(twitterAccess_DownloadStringCompleted);
twitterAccess.DownloadStringAsync(new Uri("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=" + contactList1[0].Username));
WebClient twitterAccess2 = new WebClient();
twitterAccess2.DownloadStringCompleted += new DownloadStringCompletedEventHandler(twitterAccess_DownloadStringCompleted);
twitterAccess2.DownloadStringAsync(new Uri("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=" + contactList1[1].Username));
现在我需要找到一种方法来循环在contactList1和动态生成WebClient .....
更新2问题解决了
foreach (var contact in contactList)
{
WebClient twitterAccess = new WebClient();
twitterAccess.DownloadStringCompleted += new DownloadStringCompletedEventHandler(twitterAccess_DownloadStringCompleted);
twitterAccess.DownloadStringAsync(new Uri("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=" + contact.Username));
}
foreach (var contact in contactList){WebClient twitterAccess = new WebClient();twitterAccess。DownloadStringCompleted += new DownloadStringCompletedEventHandler(twitterAccess_DownloadStringCompleted);
twitterAccess.DownloadStringAsync(new Uri("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=" + contact.Username));
}