Il y a deux jours, j’avais besoin de réduire des liens de manière dynamique sur une de mes pages web. J’ai donc fait quelques recherches Google pour tenter de comprendre comment fonctionnait l’API Bit.ly. Force est de constater qu’aucun tutoriel n’expliquait clairement comment utiliser cette API, pas même le site officiel de Bit.ly.
Pourtant c’est très simple, et quelques lignes de PHP suffisent pour stocker l’URL de la page raccourcie dans une variable.
[php]
<?php
// Vos identifiants Bit.ly. L’API Key est disponible sur votre compte Bit.ly.
$login = "kaleidoscopique";
$api_key = "R_51ab84dd45ze5zefc46662172e89";
// L’adresse de la page à réduire.
$url = "http://www.mangetamain.fr";
/* La fonction file_get_contents lit le contenu de la page de l’API avec les paramètres que vous lui envoyé.
/!\ Attention : Le paramètre qui prend l’URL de la page s’appelle »uri » et non »url ». */
$url_reduite = file_get_contents("http://api.bit.ly/v3/shorten?login=".$login."&apiKey=".$api_key."&uri=".$url."&format=txt");
// L’URL raccourcie est stockée dans $url_reduite.
echo $url_reduite;
?>
[/php]
Un code über-simple mais qui m’a fait piétiner plusieurs heures. Peut-être ne suis qu’un manchot ! Sachez aussi que ce code est utilisable avec tout les raccourciceurs d’URL qui proposent une API publique. Il vous suffira d’adapter le contenu de la fonction « file_get_contents » avec l’URL de l’API en question et la liste des paramètres dont elle a besoin !
Pour utiliser les autres fonctionnalités de cette API, je vous recommande la page officielle du Google Code Bit.ly. Si vous avez compris le code ci-dessus, vous n’aurez aucun mal à l’adapter aux autres situations ! Si vous avez un souci, laissez-moi un commentaire je tâcherai de vous aider!
N'oubliez pas de montrer à vos copains que vous lisez des articles intelligents :
Ces boutons de partage garantissent votre sécurité et votre vie privée.
Cliquez ici pour comprendre comment et pourquoi...
Ho, si ce billet vous a plu, pensez à vous abonner pour ne pas rater le prochain !
Je clash et je discute sur Twitter
Je publie les nouveaux billets sur ma page FB
... et bien sûr, vous pouvez vous abonner par e-mail ou par RSS !



6 avril 2010 à 17 h 37 min
Merci, c’est vrai que j’avais cherché un code pour faire ça et je n’avais pas trouvé de tuto l’expliquant bien, c’est maintenant chose faite, même si j’avais fini par coder un truc qui ressemblait à ça. En fait, ton code est adaptable avec beaucoup de services raccourcisseurs d’URL, il faut juste changer l’adresse de l’API et changer certaines variables (Login et API non nécessaires dans certains cas).
6 avril 2010 à 17 h 39 min
Sympa ce mini tuto, je pensais pas que l’utilisation de l’API de bit.ly était aussi simple :D
6 avril 2010 à 17 h 44 min
@Inspirated : Yes, code utilisable pour tout les raccourciceurs qui proposent une API publique en effet !
Je vais essayer de le rajouter dans l’article, ça élargira la porté du mini-tuto!
6 avril 2010 à 18 h 30 min
Je lis le code et je découvre avec surprise que c’est vraiment… bidon ^^’.
Je me hâte d’aller sur notepad++, j’installe tout ça, j’essaye… Error ! Il arrive pas à ouvrir le fichier…
En changeant de format (json) il ouvre bien le fichier. Mais voilà il ne converti pas le lien…
Voici ce que m’affiche la variable $url_reduite :
{ « data »: [ ], « status_code »: 500, « status_txt »: « INVALID_URI » }
Si quelqu’un à la solution, merci ! :D
6 avril 2010 à 18 h 36 min
Ah nan, honte à moi j’ai oublié de mettre le http:// au début du lien ^^’. J’aurais pas du m’affoler si vite…
Le seul défaut c’est que ça ralenti la page :/
Merci en tout cas, tu m’as bien aidé ;)
6 avril 2010 à 19 h 36 min
Juanito : peut-être que pour éviter ce ralentissement, la technique en Javascript est plus optimisée. J’ai jamais appris le JS alors je peux pas trop te dire si elle est bien, pratique, ni utilisable mais si tu y connais quelque chose, n’hésites pas à aller jeter un œil et me dire ici ce que ça vaut !
8 avril 2010 à 14 h 54 min
Alors, après avoir essayé des API différentes (dont Shr.Im) le constat reste le même, un ralentissement trop important. Ceci est dû au surplus de service des API… (Création de tableau avec statistique du lien à chaque fois…).
Et finalement je conseil d’utiliser tinyURL, qui propose une API encore plus simple. Pas besoin d’API key ou de login, et aucun ralentissement de la page lors de son utilisation. Bon par contre pas de statistique pour chaque lien crée, mais bon OSEF. Après je ne garantis pas non plus de la durée de vie des lien tinyURl car il doit y avoir de l’abus étant donné que l’Api ne nécessite pas de login.
Donc voilà ma solution :)
10 avril 2010 à 9 h 23 min
Ah, c’est interessant, merci beaucoup ! :-)
30 mai 2010 à 3 h 59 min
plusieurs heures pour rédiger ce bout de code ?! et beh…
29 juin 2010 à 19 h 50 min
Quel serait le code pour que l’
$urldépende de la page où je suis? En fait c’est pour mon blog, et je voudrais que l’url se raccourcisse automatiquement pour chaque article :) -Merci.29 juin 2010 à 19 h 57 min
Je ne crois pas que l’API bit.ly permettent de personnaliser les liens réduits.
29 juin 2010 à 19 h 59 min
Pourtant j’ai déjà vu ça sur le site disneypixar.fr…
5 août 2010 à 6 h 41 min
Bonjour,j’ai reçu un sms me disant que j’avais une vidéo à lire sur « bit.ly/……. or je ne sais pas où aller pour l’ouvrir et comment.Pouvez-vous m’aider,s’il vous plait?
5 août 2010 à 15 h 18 min
@Mitchou : ce genre de texto n’est ni plus ni moins qu’un spam par SMS qui va te faire aller sur des sites plus ou moins dangereux, ou payants.
7 décembre 2010 à 22 h 57 min
Bonjour,
Lorsque je ping l’url http://api.bit.ly, via mon proxy local, j’attéris sur le site bit.ly, par contre, quand je ping l’url complète pour raccourcir une url, je suis renvoyé sur une page 404.
A noter: l’url est correcte car elle fonctionne quand je ne passe pas par mon proxy.
Ca me serait fort utile pour faire des requêtes .js sans paser par de l’ajax.
Merci d’avance
Si possible, envoyer moi un mail à rollerdu83@hotmail.fr si vous trouvez la réponse. Merci bcp
7 février 2011 à 16 h 11 min
filegetcontent ne fonctionnant pas sur mon serveur, utilisation de curl :
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, « http://api.bit.ly/v3/shorten?login= ».$login. »&apiKey= ».$api_key. »&uri= ».$url. »&format=txt » );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$url_reduite;= curl_exec( $ch );
curl_close( $ch );