Signapplet de rétrécissement d’URL avec is.gd et JSONP

json-p logoLe rétrécissement d’URL est un service bien sympatique («Anaïs Fitchure» en anglais) utilisé couramment sur Internet. Une URL rétrécie présente l’avantage de préserver l’espace là où il est coûteux (dans un courriel, un SMS, un statut de microblog, ou même une page imprimée). Problème : les quelques services de rétrécissement d’URL essayés par votre serviteur ont tendance à compliquer (très légèrement) la création de liens courts, puisqu’ils obligent généralement le bougre d’impatient à coller l’url d’origine dans un formulaire, à quitter la page courante, ou à installer un certain navigateur qui propose cette fonctionnalité par défaut. Solution : un petit marque-page scripté (signapplet / bookmarklet) rapide et efficace, basé sur l’API de is.gd et la technique JSON-P.

Utilisation du marque-page scripté

Pour rétrécir l’URL disgracieuse d’une page web,

  1. sélectionnez le marque-page scripté nommé «Rétrécir l’URL avec is.gd» ;
  2. un message apparaît : copiez l’adresse courte qu’il vous indique avec CTRL-C ;
  3. collez cette adresse avec CTRL-V (là où vous voulez, ça m’est égal) ;
  4. fermez le message et reprenez tranquillement votre lecture.

Installation du marque-page scripté

  1. Copiez le code ci-après et collez-le dans le champ URL (emplacement) d’un nouveau marque-page.
    javascript:function JSONP(d){pop(d.shorturl);}function pop(d){alert("URL raccourcie :\n\n"+d);}function main(){var s="http://is.gd/create.php";var q="?format=json&callback=JSONP&url="+encodeURIComponent(location.href);var d=document.getElementsByTagName('head')[0];var t=document.createElement('script');t.setAttribute('type','text/javascript');t.setAttribute('src',s+q);d.appendChild(t);}main();
    
  2. Nommez ce nouveau marque-page «Rétrécir l’URL avec is.gd» (mais bon, c’est vous qui voyez)

Code complet du marque-page scripté

Le script implémente l’API is.gd. La technique de requête JSON-P, assez décriée, n’a rien à voir avec AJAX (exit donc XMLHttpRequest) et n’est qu’un hack passablement laid, mais elle simplifie grandement l’utilisation du service et permet de se familiariser au partage de ressources inter-domaines en javascript. Le programme se contente d’afficher un petit message discret (window.alert()). Étant donné que le signapplet officiel de is.gd provoque carrément un changement de page, le cross-domain semble plus adapté à l’utilisateur final.

function(){  
  /* 
   * décapsulation de la réponse JSON-P
   */ 
  function JSONP(data){
    display(data.shorturl);
  }
  
  /* 
   * affichage du résultat de la requête
   */
  function display(data){
    alert("URL raccourcie :\n\n" + data);
  }
  
  /* 
   * création d'une requête JSONP
   *  - introduit un nouvel élément <script>
   *  - formule une requête basée sur l'URL courante
   */ 
  function main(){
    var urlshortener = "http://is.gd/create.php";
    var query = "?format=json&callback=JSONP&url=" + encodeURIComponent(location.href);
    var doc = document.getElementsByTagName('head')[0];
    var script = document.createElement('script');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', urlshortener + query);
    doc.appendChild(script);
  }
  
  /* 
   * exécution générale
   */
  main();
}

Petit topo des services de rétrécissement d’URL

La liste ci-dessous est aussi exhaustive qu’impartiale.

goo.gl
Proposé par Google, ce service n’est normalement disponible que pour les utilisateurs du navigateur Chrome. Les signapplets qui tentent de contourner cette restriction sont régulièrement confrontés aux variations de l’API.
bit.ly
Bon service, mais le signaplet officiel manque de répondant et invoque une fenêtre dynamique partiellement écrite en Flash (!). Pas de ça ici.
ur1.ca
Autrefois mon préféré, ce service est le seul «libre» du lot et est utilisé par la plate-forme de microblogage status.net. Dommage, l’API n’est guère (pas ?) documentée.
t.co
Utilisable uniquement dans les messages de status de la plate-forme de microblogage twitter.
is.gd
Le meilleur à mon sens, hyper-réactif et API parfaitement documentée.
yourls
Your Own URL Shortener n’est pas un service, mais un logiciel libre pour créer et administrer vous-même un service de rétrécissement d’URL. La grande classe, quoi.

Suivre

Get every new post delivered to your Inbox.