Makale Özeti

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..)

Makale

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
bitly API Documentation