Ajouter un lien vers twitter avec une URL raccourcie (bit.ly)

Ceci est une « contribution pédagogique », qui montre par l’exemple comment développer une nouvelle fonctionnalité pour SPIP.

Objectif : insérer sur chaque page un lien vers la page d’envoi de twitter en peuplant le tweet avec le titre de la page et une url raccourcie (avec bit.ly).

Si l’utilisateur est authentifié sur son compte twitter, il arrive directement sur la page d’envoi, le tweet est pré-complété avec la référence de la page et une adresse courte bit.ly. Sinon, il est d’abord invité à s’identifier.

Lien vers twitter

Il est facile d’insérer un lien vers la page de saisie d’un tweet, en passant dans l’url du lien l’adresse de la page qui servira à peupler le tweet.

<a rel="nofollow" href="http://twitter.com/home?status=Titre+de+la+page+http%3A%2F%2Fdomain.name%2Fpage">Tweet this page</a>

Le lien mène vers la page twitter de saisie d’un tweet, le tweet est pré-rempli de ce qu’on a fait passer dans status.

Notes
-  Pour les accents et les caractères spéciaux, prévoir un encodage compatible avec une url, d’où les % dans l’exemple.
-  On utilise l’attribut no follow pour ne pas fausser le référencement, et parce que les robots des moteurs n’envoient pas de tweets de toutes manières.

Avec SPIP, le contenu peut être généré par le squelette, les balises suivantes récupèrent le titre de l’élément actif (article, rubrique, mot, site) ou le nom du site à défaut, et l’url de la page active. Le filtre PHP urlencode() s’occupe de formater le tout.

<a href="http://twitter.com/home?status=[(#TITRE|sinon{#NOM_SITE_SPIP}|urlencode)]+[(#SELF|urlencode)]">Tweet this page</a>

Inséré dans un squelette, ce code génèrera la cible du lien à chaque calcul du squelette.

Avec un peu de css et en récupérant une image de bouton dans les goodies de twitter, on crée un joli lien.

HTML

<a rel="nofollow" class="tweetlink" href="http://twitter.com/home?status=[(#TITRE|sinon{#NOM_SITE_SPIP}|urlencode)]+[(#SELF|urlencode)]">Tweet this page</a>

CSS (à adapter)

.tweetlink {background: transparent url(mon.image.png) no-repeat 0 50%;padding-left:20px}

URL raccourcie avec bit.ly

La nécessité de tenir dans 140 caractères rend l’utilisation d’un service d’url courtes obligatoire dans les tweets.

bit.ly est un de ces services, et il propose une API pour entre autres générer des URL courtes à partir des longues qu’on lui soumet.

Première étape, il faut s’inscrire sur bit.ly pour disposer d’un compte et d’une clé (apiKey).

Le site bit.ly propose un wiki, où on trouvera toute la doc nécessaire pour utiliser l’API, ainsi que des exemples.

Nous allons utiliser un des exemples donnés quasiment tel quel : ApiExamples

Le principe est simple : lorsque notre lien de classe .tweetlink est cliqué, le navigateur le soumet à bit.ly pour obtenir une url courte, construit le tweet en ajoutant le titre de la page, et remplace le lien d’origine. Si javascript est désactivé, le lien généré par le squelette reste valable, mais propose une url non raccourcie.

Il faut être authentifié auprès de l’API de bit.ly, et disposer de jquery. Le code suivant doit être ajouté dans le <head>, en indiquant votre login et votre apiKey.

<script type="text/javascript" charset="utf-8" src="http://bit.ly/javascript-api.js?version=latest&login=votre_login&apiKey=R_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"></script>

Jquery est inclus aux dernières versions de SPIP, s’il n’est pas disponible on ajoute dans le <head> le lien suivant

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
js_tweetthislink.js
Nécessite jquery - source - ApiExample - bitly wiki

Ci-contre le script à placer en ligne. L’instruction jquery peut être déplacée au besoin.

Le script doit être appelé dans le <head> de la page.

<script type="text/javascript" charset="utf-8" src="js_tweetthislink.js"></script>

Personnalisation du script

L’exemple proposé construit le tweet en ajoutant devant l’url raccourcie le contenu de la balise <title> du document. On peut le modifier à loisir (notamment pour ajouter un texte fixe, un @utilisateur ou des #hashtags).

javascript vs php

On peut aussi récupérer l’url raccourcie en php, et l’inclure en dur sur chaque squelette généré, ce qui reviendrait à indexer systématiquement toutes les pages du site sur bit.ly. La solution javascript est basée sur les choix de l’utilisateur, et ne sont indexées que les pages qui auront suscité suffisamment d’intérêt chez le lecteur. bit.ly propose également un système de suivi des statistiques de chaque index créé, qui permet de voir en temps réel quelles pages sont les plus tweetées et quels liens sont suivis dans les tweets envoyés.

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom