MANGE TA MAIN!

Un tuto simple pour utiliser l’API Bit.ly avec PHP

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!

Stéphane

N'oubliez pas de montrer à vos copains que vous lisez des articles intelligents :

Partager ce chouette billet sur Facebook ! Partager ce chouette billet sur Twitter !

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 !

Les commentaires de cet article sont fermés.
Découvrez pourquoi en cliquant ici !

16 Commentaires

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

  2. Sympa ce mini tuto, je pensais pas que l’utilisation de l’API de bit.ly était aussi simple :D

  3. @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!

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

  5. 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. 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 !

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

  8. Ah, c’est interessant, merci beaucoup ! :-)

  9. plusieurs heures pour rédiger ce bout de code ?! et beh…

  10. Quel serait le code pour que l’$url dé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.

  11. Je ne crois pas que l’API bit.ly permettent de personnaliser les liens réduits.

     

  12. Pourtant j’ai déjà vu ça sur le site disneypixar.fr…

  13. 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?

  14. @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.

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

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