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

  • 2

    Bonjour, sur spip3 en essayant de configurer le plugin (/ecrire/ ?exec=configurer_microblog)

    j’obtiens "Fatal error : Cannot redeclare class OAuthException in ../auto/microblog/v0.7.3/inc/OAuth.php on line 28

    avec la version 0.7.3 SVN [59281] du plugin

    • Pour ma part, avec la v3, et la 0.7.5, quand j’essaye :

      Associer votre compte twitter à ce site

      j’obtiens :

      ecrire/ ?erreur_code=401&erreur=erreur_conf_app

      Tous les paramètres Key, etc, + l’access lvel est bien sur read+write chez Twitter.

      Une idée ?

    • Bon, tout va bien. J’ai tout réinitialisé côté Twetter et ça marche au poil.
      Merci aux développeurs !

    Répondre à ce message

  • Microblog est un super plugin qui permet de tweeter plus vite que son ombre. Mais, pour être en cohérence avec le flux RSS qui ne les diffuse pas, il devrait ne pas tweeter par défaut les articles publiés en accès restreint.

    Répondre à ce message

  • 1

    Bonjour,
    J’utilise depuis quelque temps le plugin qui rend tous les services attendus.
    Pensez vous intégrer au plugin la possibilité de générer des format URL court de type Bit.ly.
    Merci pour ce plugin.

    • Non ce n’est pas envisagé ; mais rien n’interdit d’en faire un plugin spécifique

    Répondre à ce message

  • Juste une petite question : pourquoi pas encore en zip ?

    Merci à vous

    Répondre à ce message

  • 2

    Bonjour & déjà Merci pour ce plugin.

    J’utilisais auparavant « Spip Loves Twitter » qui fonctionnait très bien jusqu’à ce que l’authentification nécessite Oauth au 1er septembre 2010.

    J’ai donc décidé de passer à celui-çi, en me connectant via Supertweet.net.

    J’ai réalisé un test manuel de nouvel article publié : Impeccable, ça fonctionne.

    Mais ... je récupère pour mon site pas mal d’articles syndiqués (donc déclarés directement en « Publié » et là ... ça ne fonctionne plus ... Les nouveaux articles arrivent, sont déclarés publiés et apparaissent donc sans problème, mais Microblog ne les génère pas ...

    Est-ce que vous auriez une solution ..?

    Merci

    Jonathan
    http://www.discolab.fr/

    • Même problème que Jonathan, l’authentification Oauth avec « spip loves twitter » ne fonctionne pas.

      La solution que je teste est la suivante :
      1- inscription sur http://supertweet.net (proxy de l’API Twitter)
      2- dans le document twitter.class.php, remplacer plusieurs fois http://twitter.com par http://api.supertweet.net/1/
      3- apparemment il faut désactiver le https (sécurisé) dans la partie admin.

      A+

    • Merci pour la solution ! SPIP loves Twitter fonctionne à nouveau chez moi...

      Quelques précisions :

      2- Il faut rechercher « http://twitter.com/ » et le remplacer par « http://api.supertweet.net/1/ » sinon on se retrouve avec un « // » dans les URLs.

      3- Je confirme qu’il faut bien désactiver le https.

    Répondre à ce message

  • 1

    J’vais finir par penser que c’est pas pour moi ... J’essaye depuis plusieurs heures/jours, impossible de le faire fonctionner, que ce soit en direct avec Oauth ou via supertweet.

    Avec Oauth, quand je clique sur le lien qui permet d’ « Associer votre compte twitter à ce site », j’ai un magnifique « twitter_oauth_request : Accès interdit ».
    Si je tente avec Supertweet, tout semble ok mais quand je tente de microbloguer, j’ai là un « Il y a une erreur, veuillez vérifiez la configuration. »

    J’ai tenté toutes les combinaisons possibles de mes plugins (titre mots, cfg, bandeau, plutot simple quoi), je suis à la dernière version stable de tout (2.1.2), j’ai tenté sur 2 serveurs différents, là les idées commencent à me manquer.

    Une question : quand on crée son appli sur tweeter.com, on a une « Registered OAuth Callback URL », j’ai donné l’adresse du site. Faut-il en fait fournir l’adresse avec « /ecrire » puisque les tweets partent de l’interface d’admin ?

    Si d’autres idées, je suis preneur ... Merci d’avance. Pierre.

    • Idem en 2.1.5 ... je caressai le fol espoir d’un petit bug corrigé.
      Pierre.

    Répondre à ce message

  • 4

    Bonjour,

    j’ai configuré Microblog pour twitter avec Oauth, mais j’ai ce message d’erreur qui s’affiche maintenant à l’invite de CFG :

    Parse error : syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ’}’ in /homez.13/cathoweb/www/plugins/microblog/inc/twitteroauth.php on line 17

    Une idée d’où ça peut venir ?

    Merci !

    • Il semble que le problème soit lié à l’implémentation d’Oauth... j’ai vidé les paramètres dans spip_meta puis enregistré mon compte supertweet et là ça marche.

      Par contre, quand je remet les paramètres Oauth, le même message s’affiche...

    • Idem ici, impossible à faire marcher avec Oauth ... J’ai créé mon app sur le site de twitter, la saisie des clés client et secrête revient sur le même écran sans sauvegarde de ces données ...

      J’ai ensuite tenté en utilisant CFG, la les données semblent sauvegardées mais impossible d’envoyer un tweet manuel, ça me dit « erreur de configuration ».

      Quand j’utilise CFG, un lien apparait sous les champs de saisie des clés : « Associer votre compte twitter à ce site » ... un clic dessus donne : « twitter_oauth_request : Accès interdit »

      Bon je vais peut-être tenter avec tweeterfeed.

    • J’ai tenté sur un autre serveur/domaine, recréé app sur twitter, pareil ...
      Coup de bol final : site de supertweet est HS. Super soirée :-)
      Pierre.

    • Bon supertweet.com refonctionne ce matin, mais quelque part ça me chagrine d’autoriser supertweet à utiliser .... bref je trouverai plus sain de faire ça en direct avec twitter. Si un des auteurs passe par là ou si quelqu’un a réussi à utiliser Oauth (Indie, JLuc apparemment), peuvent-ils confirmer que eux y arrivent (avec le dernier svn bien sûr) ?
      Merci d’avance !
      Pierre.

    Répondre à ce message

  • Après pas mal de tatonnements pour twitter, voici une description du mode opératoire qui marche :

    -  aller sur http://dev.twitter.com/apps pour créer une « app »
    -  renseigner les champs, en particulier, indiquer

    • Application type : browser
    • callback url : simplement l’adresse de votre site
    • default access type : read & write
      -  Le site indique ensuite les clés consumer et consumer secret. Reporter ces clés dans les champs de la page de conf de microblog
      -  valider
      -  il apparait alors un lien pour « associer le site à twitter ». Cliquer
      -  si c’est bon, vous vous retrouvez sur twitter avec une demande de confirmation : cliquez « Allow »

    Voilà, c’est en place.

    Pour passer des messages en plus des notifications automatiques de publication, l’adresse c’est ecrire/ ?exec=microbloguer

    Répondre à ce message

  • 2

    Super avec l’implémentation de Oauth pour twitter ! Merci les auteurs.

    Par contre, je rencontre un bug : les tweets générés sont de la forme http://monsite.tld/ecrire/articlexxx.html (urls en html, c’est normal) .... c’est le /ecrire/ qui me gêne. Une idée d’où ça peut venir ? J’ai pas implémenté la modif du .htaccess, ça peut arranger les choses à votre avis ?

    Sinon, comme Med http://www.spip-contrib.net/Microblog,3051#forum435907 ... j’aurais bien voulu une option de tweet manuel.

    • J’ai complété la doc pour la possibilité d’envoyer un tweet manuel

    • Amusant, j’ai tout décoché, « Forums postés / Articles proposés / Articles publiés » ... et ça continue à tweetter à l’insu de mon plein gré. Bug ou pas ?

    Répondre à ce message

  • 2

    Installé en local et testé aujourd’hui, marche parfaitement, Twitter est bien notifié via supertweet à la publication d’un article.

    Par contre, petite question : ce n’est pas possible de twitter manuellement ? Je veux dire, twitter non pas automatiquement à la publication d’un article ou autre, mais simplement lorsqu’on le choisit. Actuellement, le cadre « Microbloguer » dans le formulaire d’édition d’un article disparaît si on décoche toutes les options de notif automatique dans la conf du plugin... Pourquoi ne pas laisser le formulaire en place et autoriser un envoi manuel ?

    Merci encore ! ;-)

    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