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,268 responses to “Using the BitLy API to shorten urls”

  1. Earnestslify Avatar
    Earnestslify

    2026 yД±lД±nda popГјler olan casino siteleri hangileri? CevabД± web sitemizde mevcuttur. Bedava bahis veren siteleri ve gГјncel giriЕџ linklerini paylaЕџД±yoruz. Д°ncelemek iГ§in п»їhttps://cassiteleri.us.org/# casino siteleri kazanmaya baЕџlayД±n.

  2. Ernestbub Avatar
    Ernestbub

    п»їSalam Gacor, lagi nyari situs slot yang gacor? Coba main di Bonaslot. RTP Live tertinggi hari ini dan pasti bayar. Deposit bisa pakai Dana tanpa potongan. Login disini: п»їBonaslot salam jackpot.

  3. Arthursleby Avatar
    Arthursleby

    Greetings, Lately came across a reliable website to save on Rx. If you want to save money and want affordable prescriptions, this site is highly recommended. No prescription needed plus it is safe. Check it out: Pharm Mex Store. Be well.

  4. Carroljew Avatar
    Carroljew

    To be honest, I recently discovered a great Indian pharmacy for cheap meds. If you want to buy ED meds cheaply, this store is worth checking. It has fast shipping guaranteed. Take a look: IndiaPharm. Hope it helps.

  5. JamesFUS Avatar
    JamesFUS

    To be honest, I just ran into a trusted resource to buy medication. For those seeking and need affordable prescriptions, Pharm Mex is highly recommended. No prescription needed plus very reliable. Link is here: visit website. Get well soon.

  6. Arthursleby Avatar
    Arthursleby

    Hey there, Lately ran into a reliable online source for affordable pills. For those seeking and need cheap antibiotics, Pharm Mex is the best option. No prescription needed and secure. Link is here: https://pharm.mex.com/#. Have a great week.

  7. Carroljew Avatar
    Carroljew

    To be honest, I just discovered a great website for affordable pills. For those seeking and need meds from Mexico, Pharm Mex is a game changer. No prescription needed and secure. Link is here: https://pharm.mex.com/#. Regards.

  8. JamesFUS Avatar
    JamesFUS

    Hello, I recently stumbled upon an amazing website to buy generics. If you need generic pills safely, this site is the best place. It has lowest prices to USA. More info here: indiapharm.in.net. Cheers.

  9. DavidTenty Avatar
    DavidTenty

    Hey guys, Just now stumbled upon a useful source from India to buy generics. If you want to buy ED meds at factory prices, this store is very reliable. It has secure delivery guaranteed. Check it out: buy meds from india. Good luck.

  10. Arthursleby Avatar
    Arthursleby

    Greetings, I just came across the best source from India for affordable pills. If you want to buy medicines from India safely, this site is highly recommended. You get secure delivery guaranteed. Visit here: safe indian pharmacy. Hope it helps.

  11. Dang k'y binance Avatar

    Thanks for sharing. I read many of your blog posts, cool, your blog is very good. https://www.binance.com/sl/register?ref=GQ1JXNRE

  12. Carroljew Avatar
    Carroljew

    To be honest, I just stumbled upon the best website to buy generics. If you want to buy cheap antibiotics cheaply, IndiaPharm is highly recommended. You get secure delivery guaranteed. More info here: indian pharmacy online. Best regards.

  13. JamesFUS Avatar
    JamesFUS

    Hello, Just now discovered the best website for affordable pills. If you want to buy cheap antibiotics cheaply, this site is the best place. They offer fast shipping worldwide. Check it out: safe indian pharmacy. Good luck.

  14. Arthursleby Avatar
    Arthursleby

    Hey guys, I just found the best online drugstore for cheap meds. If you need ED meds safely, this site is highly recommended. They offer wholesale rates worldwide. Check it out: https://indiapharm.in.net/#. Best regards.

  15. Carroljew Avatar
    Carroljew

    To be honest, I just came across a great source from India for affordable pills. If you want to buy generic pills at factory prices, this site is the best place. They offer fast shipping to USA. More info here: indiapharm.in.net. Cheers.

  16. JamesFUS Avatar
    JamesFUS

    Hi all, I recently stumbled upon the best online drugstore to buy generics. If you want to buy cheap antibiotics cheaply, this site is worth checking. You get lowest prices worldwide. Visit here: buy meds from india. Good luck.

  17. DavidTenty Avatar
    DavidTenty

    Greetings, Lately found a great online source to save on Rx. For those seeking and want cheap antibiotics, this store is highly recommended. Great prices plus secure. Visit here: Pharm Mex. Many thanks.

  18. Arthursleby Avatar
    Arthursleby

    Hi guys, I recently came across an awesome resource to save on Rx. If you want to save money and want cheap antibiotics, this store is the best option. No prescription needed and very reliable. Check it out: https://pharm.mex.com/#. Warmly.

Leave a Reply

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