Merhaba. Önceki bir yazıda php ile son tweet'leri nasıl listeleyeceğimizi anlatmıştım. Gelen bir istek üzerine bu işlemi ASP.NET ile de gerçekleştireceğiz. Bu işlem için TweetSharp kütüphanesi kullanılacaktır. İlk önce ASP.NET projemize TweetSharp'ı yüklüyoruz. Bunun için Visual Studio'da Tools > Library Package Manager > Package Manager Console diyoruz. Eğer Nuget Package Manager yüklü değil ise Tools > Extension Manager'dan NuGet Package Manager'ı yükleyebilirsiniz. Package Manager Console'u açtıktan sonra "Install-Package TweetSharp" komutunu verip paketi projemize ekliyoruz. Daha sonra bir adet Twitter uygulaması oluşturuyoruz. (Eğer daha önceden oluşturmadıysanız.)
dev.twitter.com/apps adresine gittikten sonra Create a new application diyoruz. Uygulamamızın ismi, açıklaması, web sitemiz gibi bilgileri giriyoruz. Dilersek uygulamamıza ait bir ikon da yükleyebiliriz. Uygulamamızı oluşturduktan sonra dışarıdan mesaj atabilmek için Settings sekmesinde Read (varsayılan olarak geliyor) olan erişim iznini Read and Write yapıyoruz. Daha sonra Details sekmesindeki altta bulunan Create my access token butonuna tıklayarak twitter hesabımıza erişim izni veren access token verimizi oluşturuyoruz.
Artık kodlarımızı yazmaya başlayabiliriz. Tweet'ler sayfa açıldığında listeleneceği için tweet'leri çekeceğimiz sayfanın Page_Load olayına aşağıdaki kodları yazıyoruz.
protected void Page_Load(object sender, EventArgs e)
{
var service = new TwitterService("consumerKey", "consumerSecret"); //kendi consumer key ve consumer secret verilerinizi yazınız.
service.AuthenticateWith("accessToken", "accessTokenSecret"); //kendi access token ve access token secret verilerinizi yazınız.
IEnumerable<TwitterStatus> tweets = service.ListTweetsOnUserTimeline(new ListTweetsOnUserTimelineOptions { Count = 5, ScreenName = "mhmtyylc" });
//Count ile kaç adet tweet listeleyeceğimizi seçiyoruz.
//ScreenName kısmına kendi twitter kullanıcı adımızı yazıyoruz.
Repeater1.DataSource = tweets; //Repeater'ın veri kaynağı olarak tweet'leri gösterdik.
Repeater1.DataBind(); //Repeater'a veri yüklemesini gerçekleştirdik.
}
Şimdi sayfanın ön tarafında neler yapacağımıza bakalım.
<ul class="tweets-feed">
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li>
<img src="<%# DataBinder.Eval(Container.DataItem,"User.ProfileImageUrl") %>" /> <!-- Profil resmimizi çekiyoruz. -->
<%# DataBinder.Eval(Container.DataItem,"Text") %> <!-- Tweet'imizi çekiyoruz. -->
<a class="timeago" href="//twitter.com/mhmtyylc/statuses/<%# DataBinder.Eval(Container.DataItem,"Id") %>"><%# DataBinder.Eval(Container.DataItem,"CreatedDate") %></a> <!-- Tweet tarihini çekiyoruz. -->
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
Projemizi çalıştırdığımızda ise ekran görüntüsü şu şekildedir.

Güncelleme: Eğer hashtag'lere göre arayarak listeleme yapmak istiyorsanız aşağıdaki kod bloğu işinize yarayacaktır.
var service = new TwitterService("consumerKey", "consumerSecret");
service.AuthenticateWith("accessToken", "accessTokenSecret");
TwitterSearchResult tweets = service.Search(new SearchOptions { Count = 5, Q = "#Aranacak_Kelime", Lang = "tr" });
IEnumerable<TwitterStatus> status = tweets.Statuses;
Repeater1.DataSource = status;
Repeater1.DataBind();
YORUMLAR (16)
Teşekkür ediyorum. Aslında ben masaüstü uygulaması yazmaya çalısıyordum o yüzden de repeater yerine datagrid kullanmıştım ama sorun onlarla ilgili değilmiş aynı sorunla karşılaşabilecek arkadaşlar içinde örnek olması için paylaşayım.
Şeklinde yazmıştım fakat bu şekilde bir türlü çalıştıramadım.
Şeklindeye çevirince sorun düzeldi.
Birde belirttigim bir adresin tüm tweetlerini favlamak istiyorum bunula ilgili bir çalısmanız war mı paylasabileceginiz. (Bu kısmın biraz yüzsüzlük oldugunun farkındayım tabiki kodları internette araştıracagım suan ama elinizde warsa buna yakın bişeyler paylaşırsanız sevinirim ilk defa apilerle uğrastıgım için araştıramlarım biraz uzun sürüyor)tek bir sayfada bu 10 kullanıcınında attığı son tweetleri çekmeliyim. tek bir repeaterde yapamazmıyız yani ilk 10 tweet a kullanıcısına ait sonraki repeaterde 10 tweet b kullanıcısına ait değilde tarihe göre 1. tweet a kullanıcısının 2. tweet b kullanıcısının 3.tweet yine a kullanıcısının mesela ?
Şu şekilde yapabilirsiniz: