Thème > Développement
> > > > bitly.com le short url ou url courte de bitly

bitly.com le short url ou url courte de bitly

Short url ou url courte de bitly

Suite à la mise en place d'un bouton tweet, j'ai eu besoin de faire des urls courte. Le problème était que je n'avais pas 1 ou 2 urls à raccourcir mais une centaine.
J'ai donc essayer de généré automatiquement des urls courtes dans mon backoffice, je me suis donc penché sur la doc et j'ai essayé de faire une petite classe Php dont je vous donne la base en Php 4.
Mais l'Api Bitly ne se résume pas à raccourcir les urls, elle vous permet de récupérer les stats.

Documentation API Bitly :
http://code.google.com/p/bitly-api/wiki/ApiDocumentation
Voir le site : https://bitly.com/

Api bitly : une classe d'exemple pour faire une short url

Voici la classe PHP BitlyUrlApi pour récupérer l'url courte ou short url de bitly et inversement de trouver l'url longue à partir d'une url courte de Bitly.

Cette classe PhP BitlyUrlApi est très simple, c'est juste une base de départ pour faire votre propre classe Php.

Attention cURL n'est disponible qu'à partir de la versions 4.0.2 de PHP.
Exemple de code :
class BitlyUrlApi {
private $sApiURL;
private $sQuery;
public function __construct($sLogin, $sKey, $sApiURL='https://api-ssl.bitly.com/v3/') {
$this->sApiURL = $sApiURL;
$this->sQuery = '?apiKey='.$sKey.'&login='.$sLogin.'&format=json';
}
public function shorten($sUrl) {
$response = $this->send($sUrl,'shorten','longUrl');
return (isset($response['status_code']) && $response['status_code'] =='200') ? $response['data'] : false;
}
public function expand($sUrl) {
$response = $this->send($sUrl,'expand','shortUrl');
return (isset($response['status_code']) && $response['status_code'] =='200') ? $response['data'] : false;
}
private function send($sUrl, $sAction, $sParametre) {
$ch = curl_init( );
curl_setopt($ch, CURLOPT_URL, $this->sApiURL.$sAction.$this->sQuery.'&'.$sParametre.'='.$sUrl);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result,true);
}
}
$key ='VOTRE_CLE';
$login ='VOTRE_LOGIN';
$oBitlyUrlApi = new BitlyUrlApi($login, $key);
var_dump($oBitlyUrlApi->shorten('http://www.aliasdmc.com'));
var_dump($oBitlyUrlApi->expand('http://bit.ly/tc1FeZ'));


Le résultat des var_dump :
Exemple de code :
array(5) {
["long_url"]=>
string(24) "http://www.aliasdmc.com/"
["url"]=>
string(20) "http://bit.ly/tc1FeZ"
["hash"]=>
string(6) "tc1FeZ"
["global_hash"]=>
string(6) "uDWk5w"
["new_hash"]=>
int(0)
}
array(1) {
["expand"]=>
array(1) {
[0]=>
array(4) {
["short_url"]=>
string(20) "http://bit.ly/tc1FeZ"
["long_url"]=>
string(24) "http://www.aliasdmc.com/"
["user_hash"]=>
string(6) "tc1FeZ"
["global_hash"]=>
string(6) "uDWk5w"
}
}
}


Documentation Php Curl :
http://www.php.net/manual/en/book.curl.php
Voir le site : http://code.google.com/p/bitly-api/wiki/ApiDocumentation