Bu makalemizde gün geçtikçe daha yoğun bir şekilde kullandığımız Sosyal Medya'nın bir parçası olan URL Shortener konusundan söz edeceğiz. Bu servisler daha çok karakter kısıtlaması olan sitelerde kullanılıyor. (Twitter, Facebook vs..)
Bilindiği gibi bit.ly sitesi bu işi ilk başlatanlardan ve en çok kullanılanlardandır. Son olarak Google'da bir servis (goo.gl - Google UL Shortener) sunmaya başladı. Bir sonraki makalemizde goo.gl servisindende bahsedeceğiz. Bunların dışındada 10-15 civarında servis bulunmaktadır.
Öncelikle bu servis'i kullanabilmek için bit.ly üyesi olmamız ve API Key'e ihtiyacımız bulunuyor. Üye olduktan sonra
bit.ly/a/your_api_key adresinden API Key'inizi öğrenebilirsiniz.
API değerlerimizi aldıktan sonra bit.ly'nin bize sunduğu JSON ya da XML tabanlı sunduğu web servisini kullanamaya başlayabiliriz. Biz tüm örneklerimizi XML'e kullanarak göreceğiz.
URL Kısaltma
URL adresimizi kısaltmak için kullandığımız servisimizidir.
Adres: http://api.bit.ly/v3/shorten
Parametreler;
format: xml ya da json
//Geri dönüş formatı'nın hangi türde gerçekleşeceğini belirtir.
longUrl: Kısaltmak istediğimiz adresimiz.
login: bit.ly kullanıcı adı.
apiKey: bit.ly API Key.
C#
//Kısaltmak istediğimiz URL
string longURL = HttpUtility.UrlEncode("http://www.yazgelistir.com");
//bit.ly Kullanıcı Adı
string login = "gokhanb????";
//bit.ly API key
string apiKey = "R_573c1a753d349046b40b2fae4088????";
//api.bit.ly/v3/shorten servisiniz parametreleri ile formatlanmış şekli
string xmlFormat = "http://api.bitly.com/v3/shorten?format=xml&longUrl={0}&login={1}&apiKey={2}";
//İstek yapacağımız API adresi
var url = string.Format(xmlFormat, longURL, login, apiKey);
//Geri dönüş tipimiz XML olduğu için basit bir şekilde linq ile isteği yüklüyoruz.
XDocument document = XDocument.Load(url);
//Geri dönüş değeri olan "url" ile kısa adresimize ulaşıyoruz.
string shortURL = document.Element("response").Element("data").Element("url").Value;
//Geri dönüş değeri olan "hash" ile daha sonradan yapacağımız sorgulamalarda kullanacağız.
string userHash = document.Element("response").Element("data").Element("hash").Value;
XML
<response>
<status_code>200</status_code>
<status_txt>OK</status_txt>
<data>
<url>http://bit.ly/jlpRVx</url>
<hash>jlpRVx</hash>
<global_hash>lBIlXS</global_hash>
<long_url>http://www.yazgelistir.com/</long_url>
<new_hash>0</new_hash>
</data>
</response>
URL Clicks
Kısalttığımız URL adreslerinin tıklanma sayısını öğrenmek için kullandığımız servistir.
Adres: http://api.bit.ly/v3/cliks
Parametreler;
format: xml ya da json
//Geri dönüş formatı'nın hangi türde gerçekleşeceğini belirtir.
longUrl: Kısaltmak istediğimiz adresimiz.
login: bit.ly kullanıcı adı.
apiKey: bit.ly API Key.
C#
//Bir önceki istekte eriştiğimiz "url" adresimiz
string shortURL = HttpUtility.UrlEncode("http://bit.ly/jlpRVx");
//Bir önceki istekte eriştiğimiz "hash" değerimiz
string hash = "jlpRVx";
//bit.ly Kullanıcı Adı
string login = "gokhanbagci";
//bit.ly API key
string apiKey = "R_573c1a753d349046b40b2fae40883ca7";
//api.bit.ly/v3/shorten servisiniz parametreleri ile formatlanmış şekli
string xmlFormat = "http://api.bitly.com/v3/clicks?format=xml&shortURL={0}&hash={1}&login={2}&apiKey={3}";
//İstek yapacağımız API adresi
var url = string.Format(xmlFormat, shortURL, hash, login, apiKey);
//Geri dönüş tipimiz XML olduğu için basit bir şekilde linq ile isteği yüklüyoruz.
XDocument document = XDocument.Load(url);
//Geri dönüş değeri olan "user_clicks" ile kaç kişinin tıkladığına erişiyoruz.
int cliks = int.Parse(document.Element("response").Element("data").Element("clicks").Element("user_clicks").Value);
XML
<response>
<status_code>200</status_code>
<data>
<clicks>
<user_clicks>2</user_clicks>
<global_hash>lBIlXS</global_hash>
<hash>jlpRVx</hash>
<user_hash>jlpRVx</user_hash>
<global_clicks>2</global_clicks>
</clicks>
</data>
<status_txt>OK</status_txt>
</response>
bit.ly API'nin bize sunduğu bu kadarla sınır değil tabi ki, daha fazla istatistiğe ulaşmak isteyenler
referrers, countries, clicks_by_minute, clicks_by_day servislerini de inceleyebilir.
API ile detaylı bilgi almak için
tıklayın.
Başka bir makalemizde görüşmek dileğiyle...
Gökhan BAĞCI
Web & Mobile Developer
gokhanbagci.com