Using the BitLy API to shorten urls

I was asked to place Twitter messages with product links when new products were added to a webshop. I’ve used my own Twitter class for posting the first test Tweet then I went looking for a shorten url a service to shorten the product links.

There are many url shorten services available on the internet, one of these services is Bitly.
The reasons why I’ve chosen Bitly:
– Urls don’t expire after a period of time.
– Bitly provides a click url summary (although Google Analytics can be used for this instead)
– Urls are short in length so i could use the remaining Tweet length for a small product description.
– And more important, they provide an easy to use API.
– Authentication does not require a password, we can use our API key instead.

Before we can connect to the API, we need a Bitly account, the account can be created at http://bit.ly/ to obtain a free API key.

The communication process is quite simple:
– Authenticate with your Bitly username and API key
– Call the right Bitly API url with the correct parameters for the action we want to perform
– Process the result

Below are some snippets of my Bitly class:

class BitLy
{
	/**
	 * Version of the bit ly api
	 * @var string
	 */
	private $sApiVersion = '2.0.1';

	/**
	 * Url of the api
	 * @var string
	 */
	private $sApiUrl = 'http://api.bit.ly/';

	/**
	 * username
	 * @var string
	 */
	private $sUsername;

	/**
	 * apikey
	 * @var string
	 */
	private $sApiKey;

	/**
	 * Set username and apikey
	 *
	 * @param string $sUsername
	 * @param string $sApiKey
	 * @return void
	 */
	public function  __construct($sUsername, $sApiKey) {
		$this->setUsername($sUsername);
		$this->setApiKey($sApiKey);
	}

	...

	/**
	 * shorten
	 *
	 * @param string $sLongUrl
	 * @return object with shortend url and hash
	 */
	public function shorten($sLongUrl)
	{
		return $this->process('shorten', urlencode($sLongUrl));
	}

	/**
	 * expand
	 *
	 * @param string $sShortUrl
	 * @return object with original url
	 */
	public function expand($sShortUrl)
	{
		return $this->process('expand', urlencode($sShortUrl));
	}

	...

	/**
	 * process, checks the action and returns the result
	 *
	 * @param string $sAction
	 * @param string $sParam
	 */
	private function process($sAction, $sUrlToParse)
	{
		// Check the url, if no http is present, add it
		if(strstr($sUrlToParse, 'http://') === false) {
			$sUrlToParse = 'http://'.$sUrlToParse;
		}

		// Compose action url
		$sParam = ($sAction == 'shorten') ? 'longUrl='.$sUrlToParse : 'shortUrl='.$sUrlToParse;
		$sActionUrl = $this->sApiUrl.$sAction.'?version='.$this->sApiVersion.'&'.$sParam.'&login='.$this->sUsername.'&apiKey='.$this->sApiKey.'&format=xml';

		// Get data
		libxml_use_internal_errors(true);
		$oData = simplexml_load_file($sActionUrl);
		if(!$oData) {
			throw new Exception('Api returned an invalid response!');
		}

		// Check for errors
		if($oData->statusCode == 'ERROR') {
			throw new Exception($oData->errorCode.': '.$oData->errorMessage);
		}

		// Build result object
		$oResult				= new stdClass();
		$oResult->requestedUrl	= $sUrlToParse;
		$oResult->resultUrl	= (string)$oData->results->nodeKeyVal->shortUrl;
		$oResult->hash		= (string)$oData->results->nodeKeyVal->hash;

		return $oResult;
	}

The reason why I build a result object is because of the fact that the server where the class is deployed doesn’t support JSON but JSON is also available as return format.

Furthermore, generated urls can be saved to our Bitly account history by adding an additional parameter to the url (history = 1). Another nice option of the API is to shorten the URL to a keyword, this can be achieved by sending the (keyword=your keyword) parameter along.

The complete API manual can be found at Google Code which also describes how to get click statistics of the shortened links.

Comments

1,331 responses to “Using the BitLy API to shorten urls”

  1. Georgebig Avatar
    Georgebig

    Grandpasha guncel linki laz?msa dogru yerdesiniz. Sorunsuz erisim icin t?kla Buraya T?kla Yuksek oranlar burada.

  2. DavidSab Avatar
    DavidSab

    Dostlar selam, bu popüler site kullanıcıları için önemli bir bilgilendirme yapmak istiyorum. Bildiğiniz gibi bahis platformu giriş linkini BTK engeli yüzünden yine güncelledi. Giriş hatası çekenler için doğru yerdesiniz. Güncel Casibom giriş linki şu an aşağıdadır Casibom Mobil Bu link ile doğrudan hesabınıza bağlanabilirsiniz. Ayrıca yeni üyelere verilen yatırım bonusu fırsatlarını da kaçırmayın. Lisanslı casino deneyimi sürdürmek için Casibom doğru adres. Tüm forum üyelerine bol kazançlar dilerim.

  3. Ricardodor Avatar
    Ricardodor

    Dostlar selam, bu site kullan?c?lar? ad?na k?sa bir duyuru paylas?yorum. Bildiginiz gibi site adresini yine degistirdi. Giris sorunu yas?yorsan?z panik yapmay?n. Cal?san siteye erisim adresi su an asag?dad?r: T?kla Git Bu link uzerinden vpn kullanmadan hesab?n?za erisebilirsiniz. Lisansl? bahis deneyimi icin Vaycasino tercih edebilirsiniz. Tum forum uyelerine bol kazanclar dilerim.

  4. TimothyKef Avatar
    TimothyKef

    Matbet giriş adresi arıyorsanız doğru yerdesiniz. Hızlı için tıkla: Matbet Güvenilir mi Canlı maçlar bu sitede. Arkadaşlar, Matbet yeni adresi belli oldu.

  5. Antionewhiny Avatar
    Antionewhiny

    Herkese merhaba, Vaycasino kullanıcıları adına önemli bir duyuru paylaşıyorum. Malum site giriş linkini yine değiştirdi. Erişim hatası yaşıyorsanız panik yapmayın. Güncel Vay Casino giriş adresi şu an burada: Vaycasino Bonus Paylaştığım bağlantı üzerinden doğrudan hesabınıza girebilirsiniz. Güvenilir casino keyfi sürdürmek için Vay Casino doğru adres. Herkese bol şans dilerim.

  6. DavidSab Avatar
    DavidSab

    Grandpashabet güncel adresi lazımsa doğru yerdesiniz. Sorunsuz erişim için tıkla Grandpashabet Giriş Yüksek oranlar bu sitede.

  7. Georgebig Avatar
    Georgebig

    Herkese merhaba, Casibom uyeleri icin onemli bir bilgilendirme paylas?yorum. Bildiginiz gibi bahis platformu adresini BTK engeli yuzunden surekli tas?d?. Siteye ulas?m sorunu yas?yorsan?z cozum burada. Cal?san Casibom giris baglant?s? su an asag?dad?r Siteye Git Paylast?g?m baglant? uzerinden dogrudan siteye baglanabilirsiniz. Ek olarak yeni uyelere verilen yat?r?m bonusu kampanyalar?n? mutlaka kac?rmay?n. Lisansl? casino deneyimi icin Casibom dogru adres. Tum forum uyelerine bol sans dilerim.

  8. Antionewhiny Avatar
    Antionewhiny

    Grandpashabet giriş linki lazımsa doğru yerdesiniz. Hızlı giriş yapmak için tıkla Grandpasha Giriş Yüksek oranlar burada.

  9. TimothyKef Avatar
    TimothyKef

    Bahis severler selam, Casibom sitesi üyeleri adına kısa bir paylaşım yapmak istiyorum. Herkesin bildiği üzere site domain adresini BTK engeli yüzünden tekrar güncelledi. Siteye ulaşım hatası varsa doğru yerdesiniz. Resmi siteye erişim linki şu an paylaşıyorum Casibom Giriş Bu link üzerinden direkt siteye girebilirsiniz. Ayrıca yeni üyelere verilen hoşgeldin bonusu kampanyalarını mutlaka kaçırmayın. Güvenilir casino deneyimi için Casibom tercih edebilirsiniz. Tüm forum üyelerine bol şans dilerim.

  10. Ricardodor Avatar
    Ricardodor

    Gencler, Grandpashabet Casino yeni adresi ac?kland?. Adresi bulamayanlar buradan devam edebilir https://grandpashabet.in.net/#

  11. DavidSab Avatar
    DavidSab

    Dostlar selam, bu site kullanıcıları adına önemli bir bilgilendirme yapmak istiyorum. Bildiğiniz gibi site adresini tekrar değiştirdi. Giriş hatası varsa panik yapmayın. Yeni Vay Casino giriş linki artık aşağıdadır: Vaycasino Twitter Paylaştığım bağlantı üzerinden vpn kullanmadan hesabınıza girebilirsiniz. Güvenilir casino deneyimi için Vay Casino tercih edebilirsiniz. Tüm forum üyelerine bol şans dilerim.

  12. Antionewhiny Avatar
    Antionewhiny

    Herkese merhaba, Casibom sitesi üyeleri için önemli bir paylaşım paylaşıyorum. Bildiğiniz gibi Casibom adresini erişim kısıtlaması nedeniyle yine taşıdı. Siteye ulaşım hatası çekenler için doğru yerdesiniz. Son siteye erişim bağlantısı artık aşağıdadır Casibom Yeni Adres Bu link üzerinden doğrudan siteye girebilirsiniz. Ek olarak kayıt olanlara sunulan yatırım bonusu fırsatlarını da inceleyin. Güvenilir slot keyfi sürdürmek için Casibom doğru adres. Herkese bol kazançlar dilerim.

  13. Ricardodor Avatar
    Ricardodor

    Grandpasha guncel adresi ar?yorsan?z iste burada. H?zl? erisim icin Giris Yap Deneme bonusu bu sitede.

  14. TimothyKef Avatar
    TimothyKef

    Grandpasha giriş adresi lazımsa işte burada. Sorunsuz erişim için Grandpashabet İndir Yüksek oranlar burada.

  15. DavidSab Avatar
    DavidSab

    Dostlar selam, bu popüler site üyeleri için önemli bir paylaşım paylaşıyorum. Herkesin bildiği üzere bahis platformu giriş linkini BTK engeli yüzünden sürekli değiştirdi. Siteye ulaşım hatası yaşıyorsanız çözüm burada. Resmi siteye erişim bağlantısı artık burada Casibom Yeni Adres Bu link üzerinden doğrudan hesabınıza bağlanabilirsiniz. Ayrıca kayıt olanlara verilen yatırım bonusu fırsatlarını da kaçırmayın. Güvenilir bahis deneyimi sürdürmek için Casibom doğru adres. Herkese bol kazançlar dilerim.

  16. Georgebig Avatar
    Georgebig

    Bahis severler selam, Casibom sitesi uyeleri icin k?sa bir duyuru paylas?yorum. Herkesin bildigi uzere bahis platformu giris linkini erisim k?s?tlamas? nedeniyle tekrar degistirdi. Siteye ulas?m sorunu cekenler icin link asag?da. Guncel siteye erisim linki su an burada Casibom Mobil Bu link ile dogrudan siteye girebilirsiniz. Ayr?ca yeni uyelere sunulan yat?r?m bonusu f?rsatlar?n? mutlaka inceleyin. En iyi bahis keyfi icin Casibom dogru adres. Herkese bol kazanclar dilerim.

  17. Antionewhiny Avatar
    Antionewhiny

    Arkadaşlar selam, bu popüler site kullanıcıları adına kısa bir duyuru yapmak istiyorum. Bildiğiniz gibi bahis platformu domain adresini BTK engeli yüzünden yine değiştirdi. Siteye ulaşım hatası varsa link aşağıda. Güncel Casibom giriş adresi artık burada https://casibom.mex.com/# Paylaştığım bağlantı üzerinden direkt hesabınıza bağlanabilirsiniz. Ayrıca yeni üyelere verilen hoşgeldin bonusu kampanyalarını da inceleyin. Lisanslı bahis keyfi sürdürmek için Casibom doğru adres. Tüm forum üyelerine bol şans dilerim.

  18. Ricardodor Avatar
    Ricardodor

    Matbet TV giris linki ar?yorsan?z dogru yerdesiniz. H?zl? icin t?kla: Matbet Giris Canl? maclar bu sitede. Gencler, Matbet bahis son linki ac?kland?.

  19. DavidSab Avatar
    DavidSab

    Herkese selam, Vay Casino oyuncuları için kısa bir bilgilendirme paylaşıyorum. Bildiğiniz gibi site giriş linkini yine değiştirdi. Giriş sorunu yaşıyorsanız panik yapmayın. Son siteye erişim adresi artık aşağıdadır: Vaycasino Paylaştığım bağlantı ile doğrudan hesabınıza erişebilirsiniz. Güvenilir bahis keyfi sürdürmek için Vaycasino doğru adres. Herkese bol kazançlar temenni ederim.

  20. Antionewhiny Avatar
    Antionewhiny

    Herkese merhaba, Vay Casino oyuncuları için önemli bir duyuru yapmak istiyorum. Malum platform giriş linkini tekrar değiştirdi. Erişim sorunu varsa panik yapmayın. Yeni Vay Casino giriş linki şu an burada: https://vaycasino.us.com/# Paylaştığım bağlantı üzerinden vpn kullanmadan hesabınıza girebilirsiniz. Güvenilir casino keyfi için Vaycasino tercih edebilirsiniz. Herkese bol kazançlar dilerim.

  21. Ricardodor Avatar
    Ricardodor

    Grandpasha giris linki laz?msa iste burada. H?zl? giris yapmak icin t?kla Grandpashabet Guncel Yuksek oranlar burada.

  22. TimothyKef Avatar
    TimothyKef

    Herkese selam, Vay Casino kullanıcıları adına önemli bir duyuru paylaşıyorum. Bildiğiniz gibi platform giriş linkini yine değiştirdi. Giriş hatası varsa endişe etmeyin. Güncel Vaycasino giriş adresi artık burada: https://vaycasino.us.com/# Bu link ile doğrudan hesabınıza erişebilirsiniz. Güvenilir bahis keyfi sürdürmek için Vaycasino doğru adres. Herkese bol kazançlar dilerim.

  23. DavidSab Avatar
    DavidSab

    Dostlar selam, bu site oyuncuları adına kısa bir bilgilendirme yapmak istiyorum. Malum Vaycasino adresini tekrar güncelledi. Erişim sorunu varsa panik yapmayın. Yeni siteye erişim adresi artık aşağıdadır: https://vaycasino.us.com/# Paylaştığım bağlantı ile direkt siteye erişebilirsiniz. Lisanslı casino keyfi için Vaycasino doğru adres. Tüm forum üyelerine bol şans temenni ederim.

  24. Antionewhiny Avatar
    Antionewhiny

    Grandpasha giriş adresi lazımsa doğru yerdesiniz. Hızlı giriş yapmak için tıkla Grandpashabet İndir Yüksek oranlar bu sitede.

  25. Ricardodor Avatar
    Ricardodor

    Gencler, Grandpashabet son linki ac?kland?. Adresi bulamayanlar buradan giris yapabilir Buraya T?kla

  26. Georgebig Avatar
    Georgebig

    Matbet TV giris linki ar?yorsan?z dogru yerdesiniz. H?zl? icin t?kla: T?kla Git Canl? maclar burada. Gencler, Matbet bahis son linki ac?kland?.

  27. DavidSab Avatar
    DavidSab

    Gençler, Grandpashabet Casino yeni adresi belli oldu. Giremeyenler buradan devam edebilir Grandpashabet Güncel

  28. Antionewhiny Avatar
    Antionewhiny

    Arkadaşlar, Grandpashabet Casino son linki belli oldu. Adresi bulamayanlar şu linkten giriş yapabilir https://grandpashabet.in.net/#

  29. TimothyKef Avatar
    TimothyKef

    Arkadaşlar selam, bu popüler site oyuncuları için kısa bir paylaşım yapmak istiyorum. Bildiğiniz gibi Casibom domain adresini BTK engeli yüzünden tekrar güncelledi. Siteye ulaşım problemi çekenler için çözüm burada. Güncel siteye erişim bağlantısı şu an burada Tıkla Git Bu link üzerinden doğrudan siteye girebilirsiniz. Ek olarak kayıt olanlara verilen hoşgeldin bonusu kampanyalarını mutlaka inceleyin. Güvenilir bahis keyfi sürdürmek için Casibom tercih edebilirsiniz. Tüm forum üyelerine bol kazançlar dilerim.

  30. Ricardodor Avatar
    Ricardodor

    Arkadaslar, Grandpashabet Casino yeni adresi belli oldu. Adresi bulamayanlar buradan devam edebilir Grandpashabet Mobil

  31. DavidSab Avatar
    DavidSab

    Grandpashabet güncel adresi lazımsa işte burada. Sorunsuz giriş yapmak için https://grandpashabet.in.net/# Yüksek oranlar burada.

Leave a Reply

Your email address will not be published. Required fields are marked *