Microblog

La seule plateforme de microblogage encore fonctionnelle avec ce plugin est celle de Twitter. Il est donc avantageusement remplacé par le plugin Twitter

Ce plugin offre une fonction microblog() que l’on peut utiliser pour envoyer des micro-messages (status) sur les sites de microblog compatibles avec l’API Twitter [1].

La fonction s’utilise comme suit :

   include_spip('inc/microblog');
   microblog('Bonjour, monde', 'user', 'pass', 'spipo');

Si pass est le mot de passe de l’utilisateur user sur le site spipo, un nouveau statut s’affichera.

affichage sur (feu) spip.org
affichage par jabber

À quoi ça sert-y donc ?

euh... essayons une théorie... faudra surtout voir en pratique.

Soit un ensemble de sources (les sites), et un ensemble de destinataires (des personnes intéressées par ces sources, qu’elles soient webmestres, participants aux forums ou simples lectrices).

Actuellement, chaque source doit écrire individuellement à chacun de ses destinataires ; il faut donc qu’elle en maintienne une liste. De plus cela ne facilite ni l’envoi (qui devient lourd s’il y a beaucoup de destinataires), ni la souplesse de codage (il faut un code pour chaque type de destinataire : email, jabber, SMS, RSS, etc.), ni la souplesse d’utilisation (à l’exception du suivi par RSS, il faut se déclarer sur un site pour pouvoir le suivre).

Le service de microblog (twitter par exemple) sert de tiers pour la diffusion des nouveautés/alertes. Dès qu’elle a une alerte à envoyer, chaque source notifie le service de microblog, et le service notifie à son tour chaque abonné. C’est le service tiers qui fait le boulot délicat (se connecter au jabber de l’un, au identi.ca de l’autre, envoyer un rss au 3e et un mail au 4e). C’est sur le service tiers que les abonnés indiquent leurs préférences (à quoi ils s’abonnent, comment ils veulent recevoir leurs infos). Bien entendu, si le tiers est planté, tout est planté.

identi.ca ou Twitter ?

Identi.ca est un service de microbloging proposé par StatusNet L’avantage de StatusNet est en théorie son caractère décentralisé : il est ainsi possible par exemple se créer un compte sur le site identi.ca mais de suivre une source qui « microblog » sur une autre instance installé sur son propre serveur.

L’avantage de twitter est son caractère industriel qui fait que, s’il plante, quelques dizaines d’ingénieurs seront mobilisés dans l’instant pour le remettre en service. A noter qu’il est possible d’utiliser les deux, et même de les faire communiquer.

Mode d’emploi

Une fois le plugin activé, il faut passer sur la page de configuration (.../ecrire/?exec=configurer_microblog) pour renseigner les paramètres suivants :

  • le service sur lequel le SPIP doit envoyer les notifications, à choisir parmi les 2 sites suivants : http://identi.ca ou http://twitter.com
  • le compte ouvert sur ce service sur lequel seront envoyés les notifications (oAuth de votre application Twitter, voir ci-dessous pour la configuration, ou identifiant + mot de passe pour identi.ca)
  • les évènements qui déclencheront l’envoi d’une notification ; pour l’instant 4 types sont disponibles :
    • le post d’un nouveau message de forum (y compris messages en attente de modération)
    • la publication d’un nouveau message de forum
    • le passage d’un article en mode « Proposé à la publication »
    • la publication en ligne d’un article [2].
l’interface de configuration

Configuration avec Twitter et oAuth

Depuis 2010 il n’est plus possible d’accéder à l’API Twitter via un simple login&mot de passe et il est donc nécessaire de créer une application Twitter pour chaque site et d’utiliser Oauth, ce qui complique la configuration initiale du plugin.
Voici les étapes détaillées de la configuration pour Twitter.

Créer une Application sur Twitter
Vous devez tout d’abord créer une nouvelle application (vous devez être connecté au compte twitter qui sera le propriétaire de l’application), en renseignant bien le nom, descriptif, l’url de votre site, ainsi qu’une URL de Callback (l’url de votre site fait l’affaire).

Après validation, il faut modifier les droits en allant dans l’onglet Settings et cocher le choix Read and Write de Application Type pour donner le droit à votre application de poster des nouveaux messages.

Une fois que vous avez validé, vous pouvez récupérer le consumer key et le consumer secret de votre application et les renseigner dans le formulaire de configuration du plugin microblog :

Enregistrez la configuration, puis cliquez sur le lien Associer votre compte twitter à ce site. Si tout se passe bien vous revenez normalement sur la page d’accueil de votre site. Vous pouvez venir vérifier dans le formulaire de configuration du plugin, il est maintenant affiché un lien avec la mention Dissocier le compte twitter actuellement utilisé (Nomdevotrecomptetwitter) .

Pour tester le bon fonctionnement du plugin vous pouvez utiliser le compte d’identifiant spipotest / passe spipotest1 sur le service twitter. Les notifications seront visibles sur http://twitter.com/spipotest, par exemple : une notification d’envoi de forum ou le passage d’un article en mode proposé à la publication et le passage en statut publié de cet article

Préalable dans le htaccess

Les liens figurant dans les messages générés sont des liens de type « ping » ultra-raccourcis pour ne pas trop empiéter sur les 140 caractères alloués. Typiquement, ils sont du type http://votresite.ext/1234 où 1234 est le numéro de l’article publié. Si votre site SPIP n’est pas récent, le fichier .htaccess n’intègre pas la lecture de ces urls, et il faut ajouter la ligne suivante dans le fichier .htaccess, juste avant la description des urls propres (sur une seule ligne) :

###
# ping http://site/1234 => article1234
RewriteRule ^([1-9][0-9]*)$     spip.php?action=redirect&type=article&id=$1 [QSA,L]

Microbloguer un article

Il est possible d’éditer le message qui sera envoyé, article par article, ou de bloquer l’envoi du message pour un article donné. On peut également relancer a posteriori l’envoi du message.

Lorsque vous visualisez le message avant publication de l’article, celui-ci incorpore une url vers la page d’édition de l’article. Si vous ne modifiez pas le message par défaut, l’url sera remplacée par l’url publique lors de la publication. Mais si vous modifiez le message, faites attention à bien donner une url publique de l’article, car le plugin ne touchera plus à votre message personalisé.

Pour rétablir le message d’origine, il suffit d’effacer complètement votre message personnalisé, et d’enregistrer.

Microbloguer n’importe quoi !

Le plugin propose aussi une interface pour envoyer un message immédiatement à n’importe quel sujet. La page est accessible depuis le menu Publication (sous SPIP 2.1 il faut utiliser le plugin bandeau).

Boucle (DATA){source twitter}

Si vous utilisez Twitter, le plugin permet [3] l’utilisation facile de l’API Twitter dans une boucle (DATA) pour afficher par exemple vos tweets, les tweets de votre timeline, les tweets résultats d’une recherche....

Pour ce faire, il suffit d’utiliser {source twitter,...} dans une boucle (DATA), en y précisant quelle méthode de l’API utiliser (toutes les méthodes GET de https://dev.twitter.com/docs/api/1.1 sont possibles) et les arguments sous forme de query-string.

Par exemple :

Dans un exemple complet, cela donne :

<B_tweets>
<ul class='liste-items'>
<BOUCLE_tweets(DATA)
 {source twitter,search/tweets?q=%23spip}
 {datapath statuses}
 {pagination 10}
>
<li class='item tweet'>
<img src='#VALEUR{user/profile_image_url}' style='float:right' />
from <a href='http://twitter.com/#VALEUR{user/screen_name}'>@#VALEUR{user/screen_name} (#VALEUR{user/name})</a> :
&laquo;<q>#VALEUR{text}</q>&raquo;
</li>
</BOUCLE_tweets>
</ul>
[<p class='pagination'>(#PAGINATION{precedent_suivant})</p>]
</B_tweets>

Attention, il faut bien avoir en tête que les requêtes sont faites à l’API Twitter en utilisant le compte Twitter associé au site, et donc seuls les tweets visibles par cet utilisateurs seront listés dans tous les cas.

A partir de la version 1.2.0 le plugin microblog génère automatiquement un flux RSS des tweets du compte Twitter auquel il est associé. Ce flux RSS est disponible à l’adresse spip.php?page=twitter-backend de votre site (par sécurité, il ne répondra rien si le compte Twitter est protégé)

Notes

[2Attention, sous SPIP 2.1, si vous choisissez d’envoyer le tweet quand l’article est publié ( cas d’une publication programmée dans le futur), il est nécessaire d’installer le plugin job_queue

[3à partir de la version 1.1

Discussion

29 discussions

  • Installé et testé la dernière version du plugin sur l’un de mes sites. Tout foncitonne et Twitter est notifié à la parution de l’article. Génial !

    Répondre à ce message

  • 2

    salut
    et merci pour ce plugin !

    dernière version du plugin installée sur spip2.0.10 + modif sur le htaccess pour adresses courtes.
    ça marche (les articles sont bien annoncés sur twitter) mais lorsque je publie un nouvel article j’obtiens une erreur en backoffice de spip :

    Warning : Missing argument 6 for generer_url_microblog(), called in /homez.318/mysite/www/ecrire/public/composer.php(51) : eval()’d code on line 49 and defined in /homez.318/mysite/www/plugins/microblog/microblog_fonctions.php on line 11

    Répondre à ce message

  • 4

    Bonjour,

    Félicittion et merci.

    J’ai juste une petite question : où trouver le plugin ?

    Répondre à ce message

  • 1

    Bonjour,

    Sous spip 2.1 avec url_propre2 qund je twitte un article publie, l’url de l’article est style : http://urlsite/Id_de_l’article

    Est-ce que j’ai raté qc ?

    Rainer

    • C’est un nouveau type d’url raccourcie adaptée pour les 140 caractères...

      Avant la spec des urls propres, il faut ajouter dans le fichier .htaccess à la racine de ton site :

      ###
      # ping http://site/1234 => article1234
      RewriteRule ^([1-9][0-9]*)$     spip.php?action=redirect&type=article&id=$1 [QSA,L]

      (cf http://trac.rezo.net/trac/spip/browser/spip/htaccess.txt#L86)

      D’ailleurs je me permet de l’ajouter dans la doc.

    Répondre à ce message

  • Salut, pour info, j’avaos un mot de passe avec des caractères spéciaux sur identi.ca, j’ai cru pendant un temps que le plugin ne fonctionnait pas. Non, ce sont juste les caratères spéciaux qui posent problème.

    J’ai tester avec # et avec ! .

     :)

    Répondre à ce message

  • 7

    Je viens d’installer le plugin sur le site Cuisine libre et ça semble fonctionner impeccablement : http://twitter.com/cuisinelibre :-)

    • Un problème cependant : ça tweete les articles dès que leur statut est « publie » indépendamment de la date de publication effective :-(

    • J’ai finalement désactivé le plugin, qui ne tweete pas ce qu’il convient (toujours sur Cuisine-libre.fr) : il envoie bien des messages, mais jamais au bon moment :-)

      • quand je publie un article à une date future, il le tweete aussitôt, dévoilant tout le secret de mes prochaines publications et envoyant mes followers en erreur 404 :-O
      • puis, quand cet article futur est enfin publié en ligne, le jour dit, il n’est pas retweeté, n’annonçant pas la nouveauté...
      • par contre, dès que je modifie le titre d’un article, il est tweeté comme si c’était un nouvel article :-P

      Si bien que je n’arrive pas du tout à avoir à obtenir l’effet souhaité, c’est-à-dire l’annonce des nouveautés. Et je n’arrive pas à comprendre comment je peux changer ça.

    • Pour changer ça il faudrait qu’on twitte un rss. C’est au programme pour... quand ça se trouvera. Mais le branchement sur notifications est trop immédiat pour fonctionner ici

    • La version 0.2 du plugin prend en charge correctement les articles post-dates en permettant de les annoncer uniquement après publication effective !

    • Un | publie | apparait en plus semble t’il sous twitter : http://twitter.com/spipotest/status/4405751006

      Pense tu ajouter les options pour les brèves ?

    • C’est normal : le modèle par défaut indique le statut de l’article. On peut aussi utiliser ce plugin pour notifier une équipe de rédaction des articles proposés ;-)

      Tu peux personnaliser le modèle à ta guise.

    • Shnoulle (sur un autre PC)

      A : Romy Têtue

      Ah oui, très bonne idée !

    Répondre à ce message

  • Loiseau2nuit

    Aaaargh ! Rien chez moi !

    Je viens d’installer la dernière version du plugin sur une 2.0.9, je configure le compte de test twitter (spipotest / spipotest1), je publie une bafouille de test vite fait et... et.... rien sur le compte twitter.com/spipotest oO

    Je recommence, je configure un compte de test perso sur identi.ca, je recommence la manip et... et ... rien non plus !

    Je check le spip.log histoire de voir si un truc a bloqué mais rien de porbant de ce côté là.

    Gasp ! Qu’ai-je oublié ?

    Merci pour tout retour.

    Etienne.

    EDIT : je viens de mettre la main sur un prive_microblog.log :

    Aug 26 20:18:39 92.144.132.126 (pid 3815) identica loiseau2nuit Natacha ATLAS aux "Traver’Cé Musicales" 2009 |&nbsp;(...) http://www.loiseau2nuit.net/musique/natacha-atlas-aux-traver-ce,140 0
    Aug 26 20:32:54 92.144.132.126 (pid 5204) twitter spipotest Natacha ATLAS aux "Traver’Cé Musicales" 2009 |&nbsp;(...) http://www.loiseau2nuit.net/musique/natacha-atlas-aux-traver-ce,140 0
    Aug 26 20:36:09 92.144.132.126 (pid 5391) twitter spipotest test ne pas suivre le lien merci | publié |&nbsp;(...) http://www.loiseau2nuit.net/english/test-ne-pas-suivre-le-lien-merci,141 0

    Donc il a bien enregistré les tentatives mais toujours rien sur les comtpes testés. Snif ! :-(

    Répondre à ce message

  • 1

    Est il envisagé d’utiliser la future API de connexion OAuth de tweeter ?

    Sinon super plugin... simple, efficace ... tout ce que l’on aime quoi ...

    • à ma connaissance OAuth n’est pas envisagé à l’heure actuelle

    Répondre à ce message

  • un exemple pour tester ce plugin :
    -  dans l’interface de config (/ecrire/ ?exec=cfg&cfg=microblog) choisir le service Twitter.com, Username= spipotest, Password= spipotest1
    -  dans le mes_fonctions.php

    include_spip('inc/microblog');
    function spipo($message) {
        return microblog($message);
    }


    -  dans /squelettes un fichier spipo.html avec :

    <BOUCLE_spipo(BREVES){id_breve}{0,1}>
      [(#TITRE|spipo)]
    </BOUCLE_spipo>


    -  en appelant l’url http://site.tld/?id_breve=18&page=spipo
    on envoie bien le #TITRE de la brève sur http://twitter.com/spipotest: cf http://twitter.com/spipotest/status/1887752042

    NB1 : les caractères spéciaux dans le mot de passe semblent faire planter le truc...
    NB2 : si votre serveur n’a pas l’extension PHP openssl activée, la requête POST sur le https de twitter pour générer le message (https://twitter.com/statuses/update.xml) risque fort de ne pas aboutir ! désormais les notifications sur Twitter sont envoyées sur une url en http pour contourner ce problème.

    Répondre à ce message

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