Un bouton de partage Identi.ca comme sur Twitter

Je me suis remis à utiliser Identi.ca récemment. Il s’agit d’une instance de StatusNet dont la fonction première est d’échanger de courts messages. Comme la plupart des sites permettent de partager un lien sur un réseau social grâce à un bouton, j’ai reproduit à l’identique celui de Twitter pour Identi.ca.

Depuis que StatusNet a abandonné son protocole initial pour reposer sur pump.io, toute compatibilité avec leur API a été brutalement perdue. Ce code n’est donc plus d’aucune utilité.

Il entièrement écrit en JavaScript pour que chacun puisse l’intégrer à son site sans avoir nécessairement à modifier un fichier. WordPress ou DotClear permettent de placer du code dans des Widgets, le code ne dépends pas donc pas du CMS.

Mieux. En faisant glisser le bouton dans la barre de marques page de votre navigateur, vous allez pouvoir vous faire un bouton universel : même les sites qui ne sont pas équipés d’un bouton pourront désormais être partagés sur Identi.ca !

Le code source de chaque bouton est sous licence CC-BY. Il inclut des commentaires permettant de respecter la licence, libre à vous de choisir si vous souhaitez les laisser ou non. Moi je préférerais :D

Télécharger identica-share-button.html

Télécharger identica-share-button-large.html

Le compteur ne s’actualise que toutes les 24h.

J’ai ouvert un ticket sur StatusNet pour signaler un problème de redirection qui se produit lorsque vous n’êtes pas loggué sur Identi.ca. Après vous être connecté vous serez en effet retourné sur votre flux au lieu d’être renvoyé vers la page précédente qui contenait votre message.

J’ai rencontré une très grande difficulté à raccourcir l’URL de la page, en interrogeant en AJAX l’API des raccourcisseurs d’URL. Cette utilisation de XMLHttpRequest() « site-to-site » est soumise à une sécurité que de très rares API permettent. La réponse de l’API doit contenir dans le header :

Access-Control-Allow-Origin: *

À ce jour je ne connais que http://is.gd/ qui permet les appels cross-domain. Ce problème peut pourtant facilement se résoudre en ajoutant au script PHP de l’API :

header(‘Access-Control-Allow-Origin: *’);

(plus d’info sur Wikipedia (JSONP cross-site) et sur le siteduzero (AJAX cross-domain))

Les boutons sont compatibles Firefox 3.6+, Chrome 10+ et Safari 5.1+ (signalez moi si cela fonctionne ailleurs). IE 9 et Opera ne semblent pas être supportés mais IE 10+ devrait l’être. J’apprécierais vraiment que vous postiez vos éventuelles améliorations sous cet article :)

N’oubliez pas de suivre le flux RSS des commentaires afin d’être alerté, j’en posterai un pour décrire toute nouvelle mise à jour.

Vus : 1510
Publié par Influence PC : 88