TweetSharp ile Son Tweet'leri Çekme

Merhaba. Önceki bir makalemde 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.

Tweet Listesi

Mehmet YAYLACI
YORUMLAR (11)
  1. Ahmet Aydeniz
    Ahmet Aydeniz

    02 Ocak 2016 - 23:36

    tweets bende sürekli boş dönüyor nerede yanlıs yapıyor olabilirim

    • Mehmet YAYLACI
      Mehmet YAYLACI

      03 Ocak 2016 - 17:54

      Repeater'a DataBind yapmamış olabilirsiniz.

      • Ahmet Aydeniz
        Ahmet Aydeniz

        03 Ocak 2016 - 20:21

        Teşekkür ediyorum. Aslında ben masaüstü uygulaması yazmaya çalısıyordum o yüzden de repeater yerine datagrid kullanmıstım ama sorun onlarla ilgili değilmiş aynı sorunla karsılasabilecek arkadaslar içinde örnek olması için paylasayım //TwitterService service = new TwitterService("---", "---", "---", "---");Seklinde yazmıstım fakat bu şekilde bir türlü çalıştıramadım.var service = new TwitterService("---", "---");service.AuthenticateWith("---", "---");Ş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)

  2. Günay
    Günay

    14 Mart 2016 - 17:03

    Merhabalar, Diyelimki benim elimde 10 tane tweet accountu var ve ben bunların son attığı tweetleri çekmek istiyorum.Yani tek bir kullanıcının değilde 10 kullancının birden son tweetlerini nasıl çekebilirim ?

    • Mehmet YAYLACI
      Mehmet YAYLACI

      14 Mart 2016 - 18:30

      Hepsi için ayrı ayrı TwitterService tanımlayabilirsiniz. Ayrı ayrı repeater oluşturarak yukarıdaki işlemleri her repeater için tekrarlayabilirsiniz.

      • Günay
        Günay

        14 Mart 2016 - 18:44

        Anladım. Peki benim yapmak istediğim şöyle birşey.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 ?

        • Mehmet YAYLACI
          Mehmet YAYLACI

          14 Mart 2016 - 21:57

          Bunun için bir List oluşturup tüm kullanıcıların tweetlerini bu List'te toplayabilirsiniz.

  3. erolsancaktutan
    erolsancaktutan

    02 Mayıs 2016 - 13:30

    Twitterda login olmadan istediğim kişinin tweetlerini nasıl çekebilirim?

    • Mehmet YAYLACI
      Mehmet YAYLACI

      02 Mayıs 2016 - 15:12

      Login olmadan kendinizin veya başkalarının bilgilerini çekemezsiniz. Bunun için twitter'da oluşturduğunuz uygulamanın api bilgileri ile oturum açmanız gerekiyor.

  4. Nida Aktan
    Nida Aktan

    11 Haziran 2016 - 18:19

    Merhabalar, kendi belirlediğim hashtag'lere göre atılan tweetleri nasıl listeleyebilirim?

YORUM YAPIN