• Anasayfa
  • Hakkımızda
  • Etkinlikler
  • Destek Verin
  • Site Haritası
  • Giriş Yap
  • Üye Ol
  • Facebook
  • Twitter
  • RSS
Yazılım Dilleri
  • Soru - Cevap
  • EĞİTİM SETİ
  • KATEGORİ
  • DUYURU
  • TEKNOLOJİ HABERLERİ

Son Sorular

  • 2.08.2020 23:38:31'Basit' Yazılım Dili
  • 25.06.2020 15:18:13derleme hatası
  • 11.12.2017 16:49:15Windows Hizmeti Hk.
  • 23.04.2016 00:55:33C programlama 2 oyun

Popüler Sorular

  • 27.05.2012 05:49:50Asp.Net ile Date time alana veri ekleyemiiyorum ?
  • 2.04.2012 00:45:18.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 12.05.2012 08:44:49Acil Yardım
  • 27.05.2012 13:46:51veri tabanı bağlantısı
  • .Net Framework
  • 8085 Assembly
  • Active Directory
  • ADO.NET
  • Android
  • Apple IOS
  • Arduino
  • ASP.NET
  • ASP.NET MVC
  • Blackberry
  • C#.Net
  • C++
  • CCG Framework
  • CISCO
  • CSS
  • Diğer
  • Dreamweaver
  • Entity Framework
  • Exchange Server
  • Gömülü Sistemler
  • GSM Programlama
  • Güncel
  • Güvenlik
  • HTML5
  • Java
  • Javascript / JQuery
  • Jira
  • Kariyer ve İş Yaşamı
  • LINQ
  • LibreOffice
  • Linux
  • Matlab
  • Microsoft Dynamics CRM
  • Mobil Uygulama Geliştirme
  • MySQL
  • NoSQL
  • Oracle
  • OWIN
  • PFSense
  • PHP
  • Powershell
  • Python
  • Sanallastirma
  • SAP-ABAP
  • SCOM 2012
  • SEO
  • Sharepoint 2010
  • Sharepoint 2013
  • Silverlight
  • Sistem Analiz ve Tasarımı
  • SQL Server
  • Symantec
  • TFS
  • T-SQL
  • Ubuntu
  • VB.NET
  • Veritabanı Yönetim Sistemleri
  • Visual Studio
  • VMware
  • WCF
  • Web Hosting
  • Windows 8
  • Windows Azure
  • Windows Phone 7.1
  • Windows Phone 8
  • Windows Server
  • Wordpress
  • WPF
  • Xamarin
  • XNA
  • Yazılım Mühendisliği
  • Yöneylem Araştırması
  • ASP.NET MVC
  • Entity Framework
  • Javascript / JQuery
  • LINQ
  • PHP

Son Duyurular

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

Twitter "Takip Ettiklerim" Listesi Alma

Konuyla ilgili önceki yazılarımda oAuth ile Twitter’a nasıl bağlanacağımızı ve twit yapıp, son twitimizi okuyacağımızı öğrenmiştik. Bu yazıda da Twitter kullanıcımızla takip ettiğimiz kişileri listele

10.07.2012

Yazar: Bahadir Almaci (Google+)

Kategori: ASP.NET

11435

Konuyla ilgili önceki yazılarımda oAuth ile Twitter’a nasıl bağlanacağımızı ve twit yapıp, son twitimizi okuyacağımızı öğrenmiştik. Bu yazıda da Twitter kullanıcımızla takip ettiğimiz kişileri listeleyeceğiz. Aynı şekilde başka birinin takip ettiği kişileri listelemek için de kullanabiliriz.

oAuth ile otorizasyonumuzu sağladıktan sonra öncelikle takip edilen kişilerin listesini almamız gerekiyor. Aşağıda takip edilen kişi listesi için kullanacağımız istek kodlarımız mevcut. Takip ettiğimiz kişiler twitter’da “friends” olarak nitelendiriliyor.

var url = "http://api.twitter.com/1/friends/ids.xml?screen_name=TWITTERKULLANICISI";
var xml = oAuth.oAuthWebRequest(oAuth.Method.GET, url, String.Empty);

İsteğimizi aşağıdaki gibi yapacağız. Twitter’dan tüm takip edilen kişilerin ID’lerini bir dizide toplamamız gerekiyor. Kişi listesini belli bir yerde toplamamız gerekiyor (nedenini aşağıda açıklayacağım). Örnekte ben kendi twitter kullanıcımı kullanacağım.

var aTakipEttiklerimIDs = new ArrayList(); //Takip ettiğim kişileri burada tutacağım.
var url = "http://api.twitter.com/1/friends/ids.xml?screen_name=bahadiralmaci";
var xml = oAuth.oAuthWebRequest(oAuth.Method.GET, url, String.Empty);
var xmlDoc = new XmlDocument();
xmlDoc.Load(new StringReader(xml));
foreach (XmlNode IDs in xmlDoc.DocumentElement.ChildNodes)
{
       if (IDs.Name != "ids") continue;
       var ids = new XmlDocument();
       ids.LoadXml(IDs.OuterXml);
       foreach (XmlNode id in ids.DocumentElement.ChildNodes)
              if (id.Name == "id")
             {
                    aTakipEttiklerimIDs.Add(id.InnerXml);
                    break;
             }
       break;
}

aTakipEttiklerimIDs dizisine kişilerimi alıyorum. Takip ettiğimiz kişilerin bilgilerini tek tek almaya çalışmak, her kişi için ayrı bir istek yapmak, çok zaman kaybettireceği için twitter bu işlemi toplu olarak yapmaya izin vermiş. Takip ettiğim kişilerin sayısı 100’ün üzerindeyse bunların bilgilerini twitter 100’erli gruplar halinde alabiliyoruz. Twitter “users/lookup” isteği için sayı olarak da 100 limiti koymuş.

Aşağıda toplu olarak kullanıcı bilgilerini almak için kullanacağımız istek kodlarımız var.

var url2 = "http://api.twitter.com/1/users/lookup.xml?user_id=ID1,ID2,ID3,ID4,...,ID100";
var xml2 = oAuth.oAuthWebRequest(oAuth.Method.GET, url2, String.Empty);

Şimdi yukarıda oluşturduğumuz aTakipEttiklerimIDs değişkenimi kullanarak ID listemin olduğu string bilgisini oluşturacağım. Bunun için “ids2” isminde bir değişken kullanacağım.

var ids2 = "";
for (int i = 0; i < (aTakipEttiklerimIDs.Count > 100 ? 100 : aTakipEttiklerimIDs.Count); i++)
       ids2 += (ids2 != "" ? "," : "") + aTakipEttiklerimIDs[i];

Kişi listemdeki her bir kişinin bilgilerini tutmak için bir Class oluşturuyorum. Bu class’ı API’yi inceleyip, gelen XML’deki diğer istediğiniz bilgileri kullanmak için genişletebilirsiniz.

class Kisi
{
       public string id { get; set; }
       public string name { get; set; }
       public string screen_name { get; set; }
       public string profile_image_url { get; set; }
       public string followers_count { get; set; }
       public string friends_count { get; set; }
}

“ids2” değişkeniyle oluşturduğumuz string bilgisini kullanıp, eğer 100’den fazla kişiyi takip ediyorsak ilk 100 kişinin bilgilerini okuyup aşağıda oluşturacağım ikinci dizi değişkenime ekliyorum.

var aTakipEttiklerim = new ArrayList();
var url2 = "http://api.twitter.com/1/users/lookup.xml?user_id=" + ids2;
var xml2 = oAuth.oAuthWebRequest(oAuth.Method.GET, url2, String.Empty);
var xmlDoc2 = new XmlDocument();
xmlDoc2.Load(new StringReader(xml2));
foreach (XmlNode kisiler in xmlDoc2.DocumentElement.ChildNodes)
{
       if (kisiler.Name != "user") continue;
       var kisi = new XmlDocument();
       kisi.LoadXml(kisiler.OuterXml);
       var bilgi = new Kisi();
       foreach (XmlNode elem2 in kisi.DocumentElement.ChildNodes)
       {
             if (elem2.Name == "id") bilgi.id = elem2.InnerXml;
             if (elem2.Name == "name") bilgi.name = elem2.InnerXml;
             if (elem2.Name == "screen_name") bilgi.screen_name = elem2.InnerXml;
             if (elem2.Name == "profile_image_url") bilgi.profile_image_url = "<img src='" + elem2.InnerXml + "' />";
             if (elem2.Name == "followers_count") bilgi.followers_count = elem2.InnerXml;
             if (elem2.Name == "friends_count") bilgi.friends_count = elem2.InnerXml;
             //Bu kısmı yukarıda belirttiğim gibi dilediğiniz gibi genişletebilirsiniz.
       }
       aTakipEttiklerim.Add(bilgi);
}

Yukarıda önce ids2 değişkenimle oluşturdum ID  stringini istek URL’me ekleyerek isteğimi yaptım. Gelen XML bilgisinde ID’lerini verdiğim tüm kullanıcıların, tüm Twitter bilgilerini aldım. Sonra bunların her birini Kisi tipinde ikinci oluşturduğum aTakipEttiklerim isimli sizi değişkenime ekledim.

Son olarak elde ettiğim listeyi ekrana yazdırmak kalıyor. Onu da aşağıda bulabilirsiniz.

var txt = "<tr><td>ID</td><td>İsim</td><td>Hesap</td><td>Resim</td><td>Takip Ettikleri</td><td>Takipçileri</td></tr>";
for (int i = 0; i < aTakipEttiklerim.Count; i++)
{
       var bilgi = (Kisi)(aTakipEttiklerim[i]);
       txt += "<tr id='fl_" + i + "'>" +
                    "<td>" + bilgi.id + "</td>" +
                    "<td>" + bilgi.name + "</td>" +
                    "<td>@" + bilgi.screen_name + "</td>" +
                    "<td>" + bilgi.profile_image_url + "</td>" +
                    "<td>" + bilgi.friends_count + "</td>" +
                    "<td>" + bilgi.followers_count + "</td>" +
                    "</tr>";
}
Response.Write(<h1>Takip Ettiklerim</h1><hr><table border='1'>" + txt + "</table>");

Böylece ekrana “bahadiralmaci” isimli twitter kullanıcısının takip ettiği kişilerin listesini getirmiş olduk.

Eğer kişiyi “Takip Edenler (Followers)”  listesini almak istiyorsanız en yukarıda, takip ettiğimiz kişileri almak için kullandığımiz istek kodunu aşağıdaki gibi değiştirmeniz yeterli olacak.

var url = "http://api.twitter.com/1/followers/ids.xml?screen_name=TWITTERKULLANICISI";
var xml = oAuth.oAuthWebRequest(oAuth.Method.GET, url, String.Empty);

 

Sonuç olarak aşağıdakine benzer bir çıktı elde ediyoruz:

ID İsim Hesap Resim Takip Ettikleri Takipçileri
191749884 Tuti @tutiornottuti 111 587
576611288 Diyet Usta @diyetusta 32 6
520331457 Kardeş Okul @kardesokul 7 3
231022541 Web Developer @webtechtr 1737 618
358241935 Sosyal Medya @sosyalmedya_in 2692 2887
297169759 Samsung Mobile @SamsungMobile 279 1928645
36304709 Erdil Yasaroglu @erdilyasaroglu 280 695511
117668045 Bilge Foyle @bilgefoyle 481 709
17284506 akinme @akinme 10 14

 

Yazar Hakkında

Bahadir Almaci

Bahadir Almaci

bahadir.almaci.com

Sosyal Medya

ORANLAR

  • 11435izleme

Arkadaşlarınla Paylaş

  • Tweet

0 Yorum

Yorum Yaz / Soru Sor

Lütfen yorum yazmak veya soru sormak için üye girişi yapınız.

Son Yorumlar

  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Merhaba, ellerinize sağlık çok yardımcı ol...
  • Merhaba Bu uygulama örneğinden ASP.net ...
  • Hocam Link başka sayfaya yönlendiriyor.

En Güncel Sorular

  • Bilgilendirme maili (C#.Net)
  • Power Pivot (Sharepoint 2010)
  • BigInteger, BigDecimal (Asp.Net ve Asp.Net MVC)
  • visual C# ile asp nette veritabanı islemleri (Asp.Net ve Asp.Net MVC)
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ? (Sharepoint 2010)

En Son Cevap Verilen Sorular

  • Bilgilendirme maili
  • BigInteger, BigDecimal
  • visual C# ile asp nette veritabanı islemleri
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ?
  • txt dosyasına veri yazma

Twitter

Takip et: @yazilim_dilleri

En Çok Okunanlar

Elif BAYRAKDAR

C# ile SQL Server Bağlantısı, Insert, Update ve Delete Sorguları

23.05.2013

  • 123737
  • 0
Hakan Keskin

C# ile Windows Service Projesi Oluşturma, Debug Etme ve Setup Hazırlama

17.12.2013

  • 70792
  • 0
batuhan avlayan

Php - Mail Gönderme (İletişim Formu)

02.09.2013

  • 51467
  • 0

Sponsorlar

KODLAB
Pluralsight
Exchange server is
Office 365
YAZILIM DİLLERİ
Yukarı Çık
  • Hakkımızda
  • Facebook
  • Twitter
  • RSS

© Yazılım Dillerinin Buluşma Noktası | Kaynak belirtildiği sürece makaleler kopyalanabilir.
YazilimDilleri.Net sitesinde yer alan kullanıcıların oluşturduğu tüm içeriklerin yayınlanması ile ilgili yasal yükümlülükler içeriği oluşturan kullanıcıya aittir, YazilimDilleri.Net hiçbir şekilde sorumlu değildir.

Kapat

Giriş Yap

Kullanıcı Adı

Şifre

Şifremi Unuttum

KULLANICI GİRİŞİ