2013-04-29 116 views
0

我會開始說我是構建Windows 8應用程序的新手。我最近下載了以下XAML的Twitter客戶端舉例:XAML-Twitter客戶端。獲取來自用戶的所有推文

http://code.msdn.microsoft.com/windowsapps/XAML-Twitter-Client-e343d336#content

在通過關鍵字搜索它鳴叫代碼中使用:

SyndicationFeed feed = await client.RetrieveFeedAsync(new Uri("http://search.twitter.com/search.rss?q=" + TweetSearch)); 

「TweetSearch」是一個字符串包含該關鍵字的值。

我想改變這個代碼來檢索和顯示某個用戶的所有推文,但不能完全得到它的工作。這是最接近我來就是:

SyndicationClient client = new SyndicationClient(); 

//SyndicationFeed feed = await client.RetrieveFeedAsync(new Uri("https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=UserName")); 

model.Tweets.Clear(); 

foreach (var item in feed.Items) 
{ 
    _model.Tweets.Add(new Tweet 
    { 
     Name = item.Authors[0].Email, 
     Message = item.Title.Text, 
     Image = new BitmapImage(new Uri(item.ElementExtensions.First(element => element.NodeName == "image_link").NodeValue))}); 
    } 
} 

但我收到錯誤"Specified argument was out of the range of valid values."

 foreach (var item in feed.Items) 
     { 
      _model.Tweets.Add(new Tweet 
      { 
       Name = item.Authors[0].Email, 
       Message = item.Title.Text, 
       Image = new BitmapImage(new Uri(item.ElementExtensions.First(element => element.NodeName == "image_link").NodeValue)) 
      }); 
     } 
+0

我似乎記得API的更高版本說你必須進行身份驗證。有了這個,我推薦Linq給Twitter,它有WinRT的支持。 – 2013-05-02 08:16:28

回答

0

這裏是GET statuses/user_timeline

文檔必須更改像click事件這

private async void Button_Click_1(object sender, Windows.UI.Xaml.RoutedEventArgs e) 
{ 
    SyndicationClient client = new SyndicationClient(); 
    SyndicationFeed feed = await client.RetrieveFeedAsync(new Uri("https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=" + SearchTerm.Text)); 

    _model.Tweets.Clear(); 

    foreach (var item in feed.Items) 
    { 
     _model.Tweets.Add(new Tweet 
     { 
      Message = item.Summary.Text 
     }); 
    } 
} 

我沒有改變GridView的數據模板,我使用了現有的模板。如果您想要顯示用戶的個人資料圖片,請查看GET users/show的文檔。你必須確定答案。