arama-sonuclari

TweetSharp Kütüphanesi İle Twitter Üzerinden Arama Yapmak

TweetSharp Kütüphanesi ile twitter üzerinden arama yapmak için ilk önce  dev.twitter.com adresine twitter adresimiz ile giriş yapıyoruz. Daha sonra resimdeki adımları izliyoruz.

tweetsharp1

Developer Rules Of The Road belgesini onayladığımızı belirtiyor ardından CAPTCHA ile insan olduğumuzu belirtiyoruz ve Create your Twitter application butonuna tıklıyoruz.
Resimde benim Uygulama adım ve website url formatım yanlış şekilde verilmişti. Uygulama adında noktalama işaretleri ve “Twitter” kullanmak yasak. Url belirtirken de http:// etiketini koymayı unutmuyoruz.
Şimdi bize gerekli bir kaç işlem daha kaldı. onları da resim üzerinden halledelim;

tweetsharp2

Adım 1: Settings Sekmesine Geçiyoruz.
Adım 2: Application Type kısmındaki Access’i Read and Write olarak belirliyoruz *
Adım 3: Update this Twitter application’s settings butonuna tıklayarak değişiklikleri kaydediyoruz.
Adım 4: Details Sekmesine geri dönüyoruz.
Adım 5: En alttaki Create my access token butonuna tıklıyoruz.
Adım 6: Bize gerekli olan Consumer key ve secret
Adım 7: Access token ve token secret.

İşlemimiz için ön hazırlık tamam. Şimdi Visual Studio ile yeni WindowsFormsApplication açıyoruz. C# dilini kullanıyorum ben.
Solution Explorerda yer alan References‘e sağ tıklayıp Manage NuGet Packages diyoruz. Search kısmına TweetSharp yazıp aratıyoruz ve TweetSharp‘ı projemize dahil ediyoruz.
İşlem başarıyla sonuçlandığında References klasörünün altında TweetSharp gözükecektir.

Form tasarımımıza bir göz atalım. Yapacağımız işlem aradığımız kelime ya da kişi  ile ilgili tweetleri çekip göstermek bunun için 1 tane textbox, 1 adet buton , 2 adet radio buton, ve bir list box kullanağız. Tasarım şu şekilde oluşturdum;

tweetsharp3

Ben kontrollerin isimlerini unutmamak için düzenledim. txtAra,btnAra,rbtnHashtag,rbtnHuman,lstTweets şeklinde gayet neyin ne olduğu belli . Kod kısmına geçelim şimdi de;

Öncelikle bir TwitterService oluşturuyoruz. 

        TwitterService servis;
        public Form1()
        {
            InitializeComponent();
            servis = new TwitterService(ConsumerKey, ConsumerSecret,AccessToken,AccessTokenSecret);
        }

Projeye hazırlanma aşamasında dev.twitter.com üzerinden aldığımız Key ve Secret değerlerini giriyoruz. Code bloğunda görüldüğü gibi.TwitterService kullanmak için TweetSharp kütüphanesini namespacelerimize eklemeyi unutmuyoruz tabiki.

Şimdi arama butonumuza gelelim;

 

        private void btnAra_Click(object sender, EventArgs e)
        {
            lstTweets.Items.Clear();
            if (txtAra.Text != String.Empty)
            {
                if (rbtnHashtag.Checked)
                {
                    string aranan = "#" + txtAra.Text;
                    var AramaAyari = new SearchOptions { Q = aranan, Count = 25 };
                    var Ara = servis.Search(AramaAyari);
                    foreach (var i in Ara.Statuses)
                    {
                        var Tweets = String.Format("{0} diyor ki: '{1}'", i.User.ScreenName, i.Text);
                        lstTweets.Items.Add(Tweets);
                    }

                }
                else if (rbtnHuman.Checked)
                {
                    string aranan = txtAra.Text;
                    var AramaAyari = new SearchForUserOptions { Q = aranan, Count = 25 };
                    var Ara = servis.SearchForUser(AramaAyari);
                    foreach (var i in Ara)
                    {
                        var Kullanıcılar = String.Format("{0} kullanıcısının;{1} takipçişi ve {2} tweeti bulunmakta ", i.ScreenName, i.FollowersCount, i.StatusesCount);
                        lstTweets.Items.Add(Kullanıcılar);
                    }
                }
                else
                {
                    MessageBox.Show("Ne ile arama yapacağınızı seçin lütfen", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Arayacağın kelimeyi yazmayı unuttun herhalde?", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

İlk önce ListBoxımız içini boşaltıyoruz. Daha sonra Textboxımızın dolu olduğuna emin olduğumuzda hangi radiobuton seçilmiş ona bakıyoruz. Bunlar basit olan işlemlerdi. Birazda kütüphane fonksiyonundan neler ile uğraşmışız ona değinelim.

SearchOptions : Adı üzerinde arama ayarları. 8 tane parametre alabiliyor. Biz sadece Q ve Count parametrelerini kullandık. Q anahtarımız aradığımız kelimeyi yazdığımız yer diyelim. Count da kaç adet tweet çekicek isek onun sayısı. Ben 25 tweet/Kullanıcı yeterli diye düşündüm ve 25 değerini verdim.
servis.Search(SearchOptions) : Arama ayarlarına göre arama yap dediğimiz kısım. Daha önceden girdiğimiz arama ayarlarına göre arama işlemini gerçekleştiriyor.
Ara.Statuses : Bu işlem ile atılan tweetlere erişiyoruz.
SearchForUserOptions : SearchOptions ile aynı işlevi görüyor. Fakat kullanıcı arıyor.
servis.SearchForUser(SearchForUserOptions): Arama ayarlarına göre kullanıcı araması yapıyor.
foreach döngülerinin içersindeki “i” parametrelerinin içindeki özellikleri ve methodları inceleyiniz.
Ben sadece ;
Hashtag arama için ScreenName: Ekran adı, Text : Tweet texti kullandım.
Kullanıcı arama için ScreenName: Ekran adı, FollowersCount: Takipçi sayısı , StatusesCount : Tweet sayisi özelliklerini kullandım.

Uygulamamamızı çalıştıralım ve görelim;

tweetsharp4

 

Umarım bu makale yararlı olmuştur.

(* Başka bir uygulama ile Tweet atma işlemi yapıcak olursak diye Access’i Read and Write olarak belirledik.)

Post Author: Yiğit Can TÜRE

Yorum yazma sırası sizde!