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

  • Petit dysfonctionnement constaté sur mon site cuisine-libre.fr, en SPIP 3.0.16 avec Microblog 1.2.5 : lorsque je modifie le message dans la boîte « Microbloguer » de l’article, sans oublier d’enregistrer, celui-ci n’est pas pris en compte et c’est le message par défaut qui est tweeté :(

    Répondre à ce message

  • Bonjour, concernant l’utilisation de twitter avec la boucle (DATA), est-il possible de documenter un petit peu la synthaxe ? J’essaye désespérément d’afficher une timeline qui affiche les images présentes dans les tweets sans succès.
    La liste et le texte s’affichent bien mais la valeur demandée pour remplir mon url d’image reste désespérement vide.
    Je me doute que ce doit être possible mais je bloque. Je me demandes d’ailleurs si les valeurs parsées sont à jour par rapport à l’API 1.1 car l’on doit utiliser « user/ » et non pas « users/ » pour faire fonctionner certaines boucles. Quelqu’un pourrait-il m’aider à avancer ? Merci.

     
    <B_tweets>
        <ul class='liste-items'>
        <BOUCLE_tweets(DATA)
        {source twitter,statuses/user_timeline?screen_name=moncomptetwitter}
        {pagination 10}>
        <li class='item tweet'>
        [(#VALEUR{text}|propre)] <img src='#VALEUR{media/media_url}' />
        Flw : #VALEUR{user/followers_count}
        </BOUCLE_tweets>
        </ul>
        [<p class='pagination'>(#PAGINATION{precedent_suivant})</p>]
        </B_tweets>

    Répondre à ce message

  • 6

    Bonjour,
    Je viens d’installer les plugins microblog v 1.2.2 et twidget v 0.6.0, mis à jour tous les deux le 12 juin
    J’ai créé une application chez Twitter et j’ai récupéré consumer key et Consumer secret ; l’access level est bien « Read and write »

    Dans la configuration de microblog, lorsque j’essaie de « Associer votre compte twitter à ce site », j’obtiens une page d’erreur sur Google Chrome :


    Erreur serveur
    Le site Web a rencontré une erreur lors de l’extraction de http://externe.unsa-education.com/ecrire/?exec=configurer_microblog&action=twitter_oauth_request&arg=./?exec=configurer_microblog&hash=658f2065d45626e352bf79e0c53185c9ea4c8636. Cela peut être dû à une opération de maintenance ou à une configuration incorrecte.


    Sur Firefox ou internet Explorer, j’obtiens une page blanche

    Jamais le compte Twitter ne s’associe.
    Dans l’attente d’une réponse, merci d’avance
    Cordialement,
    Gerard FONTAINE

    • Je pense que ça devrait être corrigé avec la version 1.2.3 du plugin.

    • Bonsoir,

      Après avoir fait les modifications de la révision 75381, j’obtiens ce nouveau message dans google chrome :


      Erreur serveur
      Le site Web a rencontré une erreur lors de l’extraction de http://externe.unsa-education.com/ecrire/?exec=configurer_microblog&action=twitter_oauth_request&arg=new&hash=31741ad23d216e2fc603118a915ec3a1bc3e0cac&redirect=.%2F%3Fexec%3Dconfigurer_microblog.


      Cordialement
      GF

    • Bonjour,

      Comme cela ne fonctionne toujours pas je me demande s’il ne faudrait pas une extension particulière de php pour que l’authentification Oauth fonctionne.

      J’ai cru lire sur certains sites concernant Oauth qu’ils utilisaient la bibliothèque cURL pour php.
      Est-ce le cas pour microblog ou le plugin Twitter que vous avez mis en test ?

      Merci d’avance de votre aide
      Cordialement
      GF

    • En effet, le plugin utilise les extensions cURL et openssl de PHP. Pour openssl cela parait difficile de s’en passer, mais pour cURL il est sans doute possible de se baser sur les fonctions natives de SPIP pour les requetes GET et POST au moins (les plus courantes).

      Pour info, la gestion et le signalement des erreurs ont été améliorées sur le plugin Twitter qui reprend celui-ci, mais cela ne changera rien dans le cas de cURL. Je vais essayer au moins de gérer cette erreur plus proprement.

    • Bonjour Cedric,
      Merci pour cette réponse et pour tout votre travail.
      Nous allons installer l’extension cURL sur notre serveur. Quant à OpenSSL, il était déjà présent.
      Je vous tiens au courant de la suite des évènements.
      Cordialement,
      GF

    • Bonjour Cedric,

      Après avoir installé l’extension cURL, les choses ont progressé mais comme j’ai mis en place le nouveau plugin twitter je vais continuer la discussion sur http://contrib.spip.net/Twitter-4393

      Cordialement,

      GF

    Répondre à ce message

  • Salut

    le plugin plante la page des plugins de spip 212, il doit y a voir une incompatibilité avec une des plugin... mais j’arrive pas à savoir lequel.

    La page des plugin n’affiche plus la liste de même que la page du cfg n’affiche plus la liste.

    Merci

    Répondre à ce message

  • 4

    Bonjour,

    Merci tout d’abord pour ce plugin qui offre un superbe service !
    Nous sommes en phase de réflexion d’intégration de la dimension « réseaux sociaux » sur notre site multilingue (http://www.urd.org). Et parmi les hypothèses à l’étude, nous envisageons d’avoir 2 comptes Twitter : un français et un anglais.

    Comment jugeriez la complexité d’étendre votre plugin pour :
    1. permettre d’enregistrer plusieurs comptes de microblogage ;
    2. permettre d’associer un compte de microblogage par défaut sur certains secteurs du site (typiquement, nos secteurs « fr » et « en »), ou certaines langues d’article.
    Est-ce relativement simple avec l’architecture que vous avez mise en place, ou faudrait-il carrément tout réécrire ?

    Bonne journée,

    Olivier.

    • J’avais le même besoin mais n’ai pas trouvé de solution. Je suis intéressé si quelqu’un a une idée.

    • Pour permettre d’avoir deux comptes il faudra dédoubler la configuration. Pour permettre des les utiliser à bon escient (tel message part sur tel canal), il faudra voir où insérer la logique de choix du compte à employer.

      Ça fait donc trois endroits où intervenir, sans doute rien de très complexe (il n’y a pas à « reprogrammer » la partie API), mais ça ne se fait pas sans coder un peu et faire des tests : le plugin n’est pas prévu pour ça à priori.

    • J’avoue que compte tenu :
      -  de la divergence entre Laconica (devenu status.net devenu pump.io) et Twitter d’une part ;
      -  du nombre de plugin twitter-truc qui propose un moyen d’afficher les tweets sur le site public (tous mourants car reposant sur l’API v1 en cours de fermeture) ;
      je pense de plus en plus à forker complètement le plugin pour en faire un plugin Twitter qui gèrerait l’ensemble des features associées à Twitter reposant sur l’authentification oAuth (donc publication des messages, et affichage dans le site public).

      Du coup, la configuration en serait grandement simplifiée, et il deviendrait possible d’ajouter du multi-compte sans que ça prenne une allure d’usine à gaz. Un compte par défaut pourrait alors être choisi, ce qui n’empêcherait pas de permettre la sélection d’un autre compte.

    • Merci pour vos retours !

    Répondre à ce message

  • 3

    Salut,
    Super plugin !
    Il fonctionne parfaitement sur mon site.
    J’aimerais cependant y effectuer une modification. Au lieu d’envoyer le TITRE de l’article suivi de son URL, je souhaiterais que Microblog envoie le SOUSTITRE.
    Est-ce possible ? Comment procéder ? Qu’y a-t-il à modifier dans le code source ?
    Guillaume

    • Le texte est calculé à partir d’un squelette, que tu peux modifier à ta guise après l’avoir recopié dans le dossier squelettes/

    • Désolé, je ne comprends pas... Ce squelette que je peux modifier, où se trouve-t-il ? Il est normalement parmi les fichiers du plugin Microblog, non ?

    • C’est bon, j’ai trouvé ! Il s’agit de ce fichier :

      /modeles/microblog_instituerarticle.html


      [(#MICROBLOG)]
      [(#MICROBLOG|non)
      [(#SETurl,[(#ID_ARTICLE|generer_url_microblogarticle,’’,’’,#STATUT|==publie| ?#EVALtrue)])]
      [(#SETlen,
      #VAL120|moins#GETurl|strlen
      )]
      [(#TITRE|textebrut|couper#GETlen|concat’ ’,#GETurl
      |replace ,’ ’)]
      ]

      En remplaçant #TITRE par #SOUSTITRE ce dernier remplace bien le second.

      => « résolu » ;)

    Répondre à ce message

  • André Berdouan

    Bonsoir à tous,
    Je dois être particulièrement idiot mais je suis incapable d’associer mon compte twitter à mon site.
    J’ai fait, re-fait et re-fait encore, les procédures comme indiquées dans la documentation.
    J’avais utilisé Microblog pour SPIP 2.1 et cela s’était déroulé sans problème.
    Si vous pouvez m’éclairer,
    Merci d’avance.
    AB
    Message affiché :
    « Fatal error : Cannot redeclare class OAuthException in /home/www/a1932d5cc1c1a99ee669316d2b43e680/web/mrc39/plugins/auto/microblog/v1.1.0/inc/OAuth.php on line 28 »
    Version SPIP utilisée : SPIP 3.0.5 [19905]
    Version Microblog : 1.1.0

    Répondre à ce message

  • Bonjour

    j’ai réussi à installer le plugin et je peux twitter sur mon site

    j’abuse peut-être est il possible d’avoir l’exemple pour récupérer ses tweets
    j’ai bidouillé votre exemple en utilisant la methode get en vain dois je rentrer quelque part l’adresse de mon compte twitter et mon user merci

    source twitter,statuses/user_timeline
    datapath statuses
    pagination 5

    Répondre à ce message

  • 3

    Bonjour,

    J’ai le même problème que davduf.
    Je suis sur V2.1 avec la version 0.75 de Microblog.

    Suite à la supression de SuperTwett j’ai basculé sur le système O_Auth (http://dev.twitter.com/apps/new)) et ai crée l’application qui me donne bien les :

    - Consumer key et Consumer secret.

    Je valide par « associer votre compte twitter à ce site » avec le Consumer key.
    Et j’obtiens bien le Access token

    Mais à ce stade ca bloque. Coment ré-initialiser chez Twitter ?

    Merci
    Cordialement,
    Pierre-Yves

    • Bonjour,
      j’ai détaillé les étapes de configuration de l’application Twitter dans la documentation. En particulier il faut impérativement renseigner le champ « URL Callback » de l’application sinon l’association du compte twitter ne fonctionne pas, pour une raison qui m’échappe.

    • Merci Cedric !

      Cas typique de non lecture de la doc jusqu’au bout. Désolé...

      Je confirme donc que ca fonctionne avec le renseignement du champ « URL Callback ».
      J’y ai mis l’adresse de mon twitter. Pour y mettre qql chose...

      Pour info (ceux qui installent pour la première fois) : sur votre compte twitter à https://twitter.com/settings/applications vous avez (en outre) la confirmation que le lien est bien établi (mention de l’application : approuvé)

    • Bonjour,

      Merci pour ces précisions ; je bloquais et le fait de renseigner le champ « URL Callback » avec l’adresse du site appelant a débloqué les choses et tout fonctionne parfaitement.

      Je cherche maintenant à publier sur Spip (Zpip) les tweets d’un compte particulier ou bien les tweets du même compte (celui de Spip vers twitter) avec un hashtag identifié.
      J’utilise SPIP 3.0.5.
      Avez-vous des idées ?

      Merci de votre aide.

      Bertrand

    Répondre à ce message

  • 2

    Petit souci avec la dernière version.

    Les forums en attente de validation sont... twittés.
    Du coup, les spams, ils sont heureux :-)

    Un moyen de contourner ça ?

    Merci aux dev !

    • Hello,

      En effet, quand tu actives la notifications des « Forums Postés » dans la configuration du plugin Microblog, cela inclue tous les forums. Note que le réglage est voisin de celui « Articles proposés » et il a été pensé pour faire de la modération (via un compte privé par exemple).

      Cela dit le fonctionnement de ce réglage n’a pas changé depuis 2 ans donc je pense que ta configuration a du être modifiée, ou c’est une modification dans un autre plugin qui a entrainé ce changement.

      On pourrait utilement ajouter un réglage pour ne notifier que les messages de forum validés !

    • L’option est ajoutée à la version 1.0.0 du plugin qui devrait être dans le zip très rapidement !

    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