Asp.Net ile Twitter’ a gönderi yapmak

FriendFeed başlığıyla aynı olsun istedim :) son yılların en anlamsız aynı zamanda da en anlamlı girişimi hiç şüphesiz Twitter. Herkes adını duymuştur herkes üyedir ama kimse ne işe yaradığını bilmez, ne işe yaradığını bilenler fuzuli bir araç olduğunu söyler ama ne var ki herkesde aynı zamanda bu hizmeti kullanır. Burada durum Twitter nedir ne değildir diye uzun uzadıya birşey yazmayacağı, amacım belli asp.net ile Twitter’ a gönderi yapacağız, yani twitliyeceğiz :) FriendFeed örneğinde thread kullanmamıştık, bu örnekte thread kullanmakta fayda var diye düşünüyorum. Nedeni ise Twitter FriendFeed e göre çok daha etkin kullanılan bir hizmet olduğundan zaman zaman sunucuları bize geç cevap verebiliyor, bazen hiç cevap veremiyor Twitter’ ın deyimiyle over capacity oluyor. Bu arada thread nedir diye soracak olursanız buraya bakmanızı öneririm. Kaba tabirle ne olduğunu anlatmaya çalışayım. Methodumuzu aynen yazıyoruz, fakat methodu yeni bir thread ile çağıyorsunuz. Twitter örneğinde kullanıcı sayfanın işlemi yapmasını bekler, çünkü ilk önce bağlantı kurulup sonrasında bilginin karşıya gönderilmesi gerekmektedir, bu da karşı tarafın ve sizin trafiğinize göre değişkenlik gösterir. Kimi zaman 2 saniyede gerçekleşen iş kimi zaman 20 saniyede gerçekleşir. Thread ile bu işi arkaplanda yaptırıyoruz. Yani kullanıcıyı hiç bekletmiyoruz. Kullanıcı direk işlemin tamamlandığını görüyor, fakat arkatarafta thread işlemi koşturup sonuçlanmasını sağlıyor. Unutmadan projemize referans olarak Microsoft.Http.dll’ yi ekliyoruz. Twitter a gönderi yapmak için api anahtarına ihtiyaç duymuyoruz. Direk kullanıcı adımız ve şifremiz yeterli oluyor. Bu arada gönderiyi yapan kodu bir yerden bulmuştum fakat adresi hatırlamadığımdan kaynak gösteremiyorum. Yazan arkadaş hakkını helal etsin :)

    protected void Page_Load(object sender, EventArgs e)
    {
        Thread trd = new Thread(new ThreadStart(this.twitterGonder));
        trd.IsBackground = true;
        trd.Start();
    }

    private void twitterGonder() {
        HttpClient httpClient = new HttpClient("http://twitter.com/statuses/");
        httpClient.TransportSettings.Credentials = new NetworkCredential("tiwetter_kullanıcıadı", "şifremiz");
        System.Net.ServicePointManager.Expect100Continue = false;
        HttpResponseMessage responseMessage = httpClient.Get("friends_timeline.xml");

        HttpUrlEncodedForm formTwitter = new HttpUrlEncodedForm();
        formTwitter.Add("status", "asp.net twitter denemesi, thread.");
        responseMessage = httpClient.Post("update.xml", formTwitter.CreateHttpContent());
    }
  • http://populerlinkler.blogspot.com/ deniz

    asp.net ile daha pek uğraşamadım ama bu fonksiyon için teşekkürler, sitemden direk linki de paylaşacağım…

  • apoStyLEE

    Bende teşekkür ederim :)

  • Ömer

    Apo abi yazılarını takip ediyorum sağol öğrettiklerin için.
    Twitter hesabımızda twitlediğimiz güncellemeleri web sitemizde nasıl gösterebiliriz. ve bunu asp ile yapabilir miyiz. araştırdım bulamadım. ancak sen bilirsin :razz: yada web sitemize içerik ekleyince başlıkla beraber linki twitter’a gönderi yapabilir miyiz? mümkün mü? çözümü biliyor musun? kaynak gösterebileceğin “anlaşılır” bir adres var mı ?

    • apoStyLEE

      Teşekkür ederim Ömer :) çok uzun zamandır klasik asp ile ilgilenmiyorum. İstediklerini araştırıp klasik asp ile nasıl olur konusunda bilgi sahibi olayım, buraya yazarım ;)

      • Ömer

        Merakla bekliyorum :) nasıl yapıldığını apilerin nasıl kullanıldığını kavrasam kendim 1-2 birşey geliştirecem :grin:

  • sevim,Kaya

    arkadaşlar httpClient ile ilgili türkçe döküman lazım.httpClient nedir nasıl çalışır.Bu tür programların çalışma mantığı nasıldır.yardımlarınız için teşekkürler

  • sedat

    Merhabalar Abdullah kardeşim. asp.net ile twitter a login olduktan sonra; https://api.twitter.com/1/statuses/home_timeline.json?include_entities=true
    linkinden veri elde etmek istiyorum.Nasıl yapacağım hakkında bir fikrin varmı?

  • samet

    aynı kodları yazdım ama hiçbirşey olmadı. çalıştığından emin misiniz