Twitter

En date du 12/01/2023 les API Twitter tierces-parties ont été fermées sans communication de la part de l’entreprise. Le plugin n’est donc plus fonctionnel.

Un plugin qui facilite l’intégration de Twitter dans un site SPIP et permet :

  • d’envoyer facilement des messages avec un ou plusieurs comptes Twitter
  • d’afficher des Widgets standards dans le site public (qui respectent la vie privée des visiteurs)
  • d’utiliser les données de Twitter avec une boucle (DATA)

Le plugin fait office de proxy afin qu’aucune requête ne soit faite par vos visiteurs vers Twitter et éviter tout traçage possible de leur activité (préservation de leur vie personnelle).

Ce plugin intègre les 2 plugins Microblog (dont seule la partie Twitter était encore fonctionnelle) et Twitter Widget. Il les remplace avantageusement pour SPIP 3.

(2020) Attention : suite aux changements successifs de l'API et de la politique de twitter vis a vis de l'usage de son API, il se peut que le plugin ne soit plus opérationnel.

Mode d’emploi

Le plugin s’installe comme tous les autres

Pré-requis

Ce plugin nécessite le module cURL de PHP pour fonctionner.

Configuration

Une fois le plugin activé, il faut passer sur sa page de configuration accessible depuis la page des plugins.

Configurer l’accès à Twitter

Toute l’API Twitter n’étant accessible qu’en étant identifié, il faut y configurer les clés secrètes d’une Application Twitter et ajouter un ou plusieurs comptes que le site pourra utiliser. Cette partie de la configuration est décrite en détail dans Créer une Application Twitter pour utiliser dans SPIP.

Configurer l’envoi de Tweets

Une fois l’application et les comptes configurés, vous pouvez ensuite indiquer :

  • 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 message 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.
  • la présence ou non d’une invite de status sur chaque article pour permettre de personaliser le Tweet qui sera envoyé.

Configurer les Widgets

Tout cela concerne la configuration du fonctionnement par défaut des Widgets lorsqu’ils seront insérés dans les squelettes. Ces réglages par défauts sont ensuite personnalisables au cas par cas lors de l’insertion.

Chose importante à noter : les résultats affichés dans les widgets sont récupérés avec le compte de l’utilisateur Twitter par défaut qui a été ajouté auparavant. Les tweets que cet utilisateur ne peut pas voir (comptes bloqués par exemple) ne s’afficheront pas.

Widget de recherche
Il affiche les tweets qui correspondent à une recherche Twitter.

Pour ajouter ce widget dans votre squelette vous pouvez utiliser le code :
#INCLURE{fond=inclure/twidget_search}

Widget de profil
Il affiche tous les tweets d’un utilisateur Twitter

Pour ajouter ce widget dans votre squelette vous pouvez utiliser le code :
#INCLURE{fond=inclure/twidget_profile}

Tweeter 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.

Tweeter n’importe quoi !

Le plugin propose aussi une interface pour envoyer un message immédiatement sur n’importe quel sujet. La page est accessible depuis le menu Publication > Twitter

Insérer les Widgets dans le site public

Widget de recherche
Pour ajouter le widget de recherche dans votre squelette insérez le code :
#INCLURE{fond=inclure/twidget_search}
Vous pouvez le personnaliser lors de l’insertion :
#INCLURE{fond=inclure/twidget_search,search=#SPIP,width=200}

Les variables personnalisables sont :

  • search : terme(s) recherché(s)
  • title : titre en clair de la recherche
  • subject : sous titre de la recherche
  • interval : intervalle de mise à jour en millisecondes
  • width : largeur en px
  • height : hauteur en px
  • shell_background : couleur de background
  • shell_color : couleur de police
  • tweets_background : couleur de background
  • tweets_color : couleur de police
  • tweets_links : couleur des liens
  • scrollbar : true/false
  • loop : true/false
  • live : true/false
  • hashtags : true/false
  • timestamp : true/false
  • avatar : true/false
  • toptweets : true/false

Widget de profil
Pour ajouter le widget de profil dans votre squelette insérez le code :
#INCLURE{fond=inclure/twidget_profile}

Vous pouvez le personnaliser :
#INCLURE{fond=inclure/twidget_profile,user=spip,width=200,height=300}

Les variables personnalisables sont :

  • user : nom de l’utilisateur Twitter dont la timeline est affichée
  • rpp : nombre de résultats affichés
  • interval : intervalle de mise à jour en millisecondes
  • width : largeur en px
  • height : hauteur en px
  • shell_background : couleur de background
  • shell_color : couleur de police
  • tweets_background : couleur de background
  • tweets_color : couleur de police
  • tweets_links : couleur des liens
  • scrollbar : true/false
  • loop : true/false
  • live : true/false
  • hashtags : true/false
  • timestamp : true/false
  • avatar : true/false

API tweet()

Ce plugin offre une fonction tweet() que l’on peut utiliser pour envoyer des micro-messages (status) sur Twitter [1].

La fonction s’utilise comme suit :

   include_spip('inc/twitter);
   tweet('Bonjour, monde');

Boucle (DATA){source twitter}

Si vous utilisez Twitter, le plugin permet [2] 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 utilisateur seront listés dans tous les cas.

Flux RSS

Le plugin Twitter génère automatiquement un flux RSS des tweets du compte Twitter par défaut 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é).

Le squelette twitter-backend.html peut être pris comme modèle pour générer d’autres flux RSS pour d’autres utilisateurs.

Notes

[1la fonction microblog() héritée du plugin Microblog reste fonctionnelle

[2à partir de la version 1.1

Discussion

54 discussions

  • 1

    Bonjour

    Pour afficher les tweets de mon compte principal via SPIP, j’ai utilisé la boucle suivante, récupérée dans le post de Teenoo et qui fonctionne bien :

    <B_tweets>
       <ul class='liste-items'>
       <BOUCLE_tweets(DATA)
            {source twitter,statuses/user_timeline}    
            {datapath statuses}
           {0,1}
    >
       <li class='item tweet'>
       <img src='#VALEUR{user/profile_image_url}' style='float:right' />
       de <a href='http://twitter.com/#VALEUR{user/screen_name}'>@#VALEUR{user/screen_name} (#VALEUR{user/name})</a> :
    <q>#VALEUR{text}</q>
       </li>
       </BOUCLE_tweets>
       </ul>
    </B_tweets>

    Comment customiser la boucle ou par quel autre moyen, puis-je afficher les tweets d’un autre compte dont je suis le propriétaire également ?

    Merci.

    • Bonjour
      Je rencontre le meme probleme
      Pouvez vous me dire ce que vous avez modifié dans htacces ?
      Merci !

    Répondre à ce message

  • Bonjour
    Merci pour ce plugin que je viens d’installer
    Cependant, lorsque je publie un nouvel article le tweet ne par pas
    De meme lors de la composition d’un tweet, j’ai ce message
    « Il y a une erreur, veuillez vérifiez la configuration »
    Merci pour votre aide

    Répondre à ce message

  • 2

    Bonjour,

    Existe-t-il un moyen de rendre la largeur du widget flexible pour l’insérer sur un site responsive svp ?

    Valéry

    Répondre à ce message

  • bonjour
    Pourquoi limiter l’envoi de tweets aux articles et forums ? Pourquoi ne pas proposer les brèves par exemple ?

    Répondre à ce message

  • Stéphane

    Bonjour,

    Le must serait d’avoir un équivalent pour Facebook :)

    en tous cas merci pour ce plugin.

    Répondre à ce message

  • Bonjour,
    Est-ce que la boucle DATA permet d’afficher autre chose que le ’text’ comme valeur ? En l’occurrence est-ce que les différentes « entities » de Twitter sont facilement utilisables et affichables ?

    Répondre à ce message

  • 4
    Pierrot

    Bonjour,

    Sur un site j’avais Microblog d’installé, fonctionnel depuis je dirai au moins 1 an. Le client me signale qu’il ne peut plus envoyer de tweets ... Message : « Il y a une erreur, veuillez vérifiez la configuration. » Client chez OVH, Spip 3.0.13, Microblog 1.2.3 (de mémoire).

    Après moultes tests infructueux (genre désactiver-réactiver le plugin, dissocier-réassocier l’appli Twitter, tout ça marche mais toujours le message d’erreur), je fais un essai sur mon serveur local, ça marche ...

    Je reprends tout, je mets à jour le site en 3.0.15, je remplace Microblog par Twitter dernière version, idem toujours cette erreur (je note d’ailleurs qu’il n’est pas évident de désactiver-désinstaller, quand on ré-installe, le compte twitter est toujours connu, j’ai dû aller dans spip_metas pour effacer toutes les références à microblog/twitter pour avoir l’impression de repartir d’une copie vierge).

    Je constate que je n’ai pas de tmp/twitter.log alors que certains mentionnent ce fichier ici ... dans spip.log j’ai des erreurs concernant la création du champ « microblog » sur la table articles (duplicate, normal ou pas ? il n’a apparemment pas été supprimé lui non plus lors de mes desactivations/suppressions).
    J’ai aussi des erreurs

    Pri:ERREUR: Table 'xxxxxxxxxx.spip_plugins_liens' doesn't exist - SHOW CREATE TABLE <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9wbHVnaW5zX2xpZW5zPC9jb2RlPg=="></span>
    Mar 04 10:45:07 82.67.71.107 (pid 2496) :Pri:!INFO: trouver_table: table inconnue '' 'spip_plugins_liens'

    Cette table n’existe pas ...mais je ne la trouve dans aucune de mes (nombreuses) installations Spip donc je ne vois pas trop ce que ça vient faire ici ...

    Bref je tourne en rond sans voir l’amorce du début d’un commencement du pourquoi du comment ... J’ai bien sûr bidouillé la config en tous sens, mais j’ai toujours le message « Il y a une erreur, veuillez vérifiez la configuration. » que ce soit depuis un article ou depuis le menu « Twitter ». Le compte marche, l’association marche nickel, ....

    Bref ma première question serait de savoir ce qui peut générer ce message sachant que dans les paramètres du plugin il voit bien mon compte et il l’active bien ... donc la config semble bonne ! Mieux, j’ai bien le fil qui apparait dans le back-office sur les widgets ce qui semble confirmer que ma config tient la route !

    La 2e concernerait OVH puisque j’ai testé plugins et config sur mon serveur local (MAMP) et sur un VPS en Debian qui eux fonctionnent. Quelqu’un a ce plugin sur un plan pro OVH ? (cURL est présent, j’ai vérifié). Une version mini de PHP nécessaire ? autre chose à vérfier ?

    Merci à toutes les idées ...

    Pierre

    • Pierre-Yves

      Bonjour,

      je confirme, je fais fasse au même problème. Y compris après la mise à jour du plugin aujourd’hui.

      Cela fonctionnait jusqu’au 20 février 2014 (au moins jusqu’à cette date).

      Cordialement,
      Pierre-Yves

    • Pierre-Yves

      Re,

      Peut-être un piste par rapport à OVH : http://forum.ovh.com/showthread.php?97572-API-Twitter-un-blocage

      Cordialement,
      Pierre-Yves

    • Pierrot

      Bonjour,

      Oui clairement ceci explique cela ... Si vraiment Twitter ne réponds pas à OVH (comme ils semblent le dire), ce qui ne m’étonne pas (un hébergeur français doit sembler être une quantité négligeable pour Twitter même s’ils devraient un peu regarder leurs stats en ce qui concerne la taille d’OVH) ... on est pas sorti de l’auberge. OVH va probablement trouver une solution technique de contournement (ils sont assez forts pour ça) mais à force de rustines et de contournement, chaque diagnostic devient plus long et plus difficile...

      D’après certains posts ce serait carrément tout OVH qui est blacklisté puisque certains ont essayé de déplacer leurs mutus au Canada ...

      Bref ...
      Pierre

    • Pierrot

      Précision : j’ai ouvert un ticket chez OVH et un chez Twitter.

    Répondre à ce message

  • Je viens d’installer Twitter et ça semble prometteur... Une seule chose que j’aimerais cependant... Est-il possible de restreindre la publication aux nouveaux élément publié dans une rubrique en particulier ???

    Si on m’indique quoi aller changer dans le code, j’ai pas peur de me mettre les mains dans le cambouis ! ;)

    Répondre à ce message

  • Juste si quelqu’un d’autre recherche : si vos tweet ne partent pas et que dans le fichier tmp/log/twitter.log vous avez un Jan 03 22:24:45 154.948.13.21 (pid 5992) :Pub:info: Erreur 401 cela signifie suremet que l’application twitter que vous avez créée est en « lecture seule » et pas en « lecture/écriture »

    Répondre à ce message

  • 5

    Est-ce que la boucle DATA a été utilisée sur les derniers tweets d’un compte utilisateur ? Dans les faits, impossible de la faire fonctionner... Un code en exemple qui marcherait pour voir d’où j’ai pu faire une erreur ?

    Merci

    • Toujours pas de boucle data fonctionnant. Je vous joins mon code au cas où... Je cherche à afficher le dernier tweet. La boucle Data me permet de contrôler l’esthétique de l’affichage.

      <B_tweets>
          <ul class='liste-items'>
          <BOUCLE_tweets(DATA)
      	{source twitter,statuses/user_timeline}    
      	{datapath statuses}
              {0,1}
      >
          <li class='item tweet'>
          <img src='#VALEUR{user/profile_image_url}' style='float:right' />
          de <a href='http://twitter.com/#VALEUR{user/screen_name}'>@#VALEUR{user/screen_name} (#VALEUR{user/name})</a> :
      <q>#VALEUR{text}</q>
          </li>
          </BOUCLE_tweets>
          </ul>
      </B_tweets>
    • Salut,

      est-ce que sans le critère {0,1} ça marche ou pas ?

    • Non absolument rien. J’ai beau voir dans tous les sens, je ne vois pas où est le soucis.

    • Problème réglé en utilisant ce code :

      <BOUCLE_tweets(DATA) {source twitter,#VAL{statuses/user_timeline}
      |parametre_url{count,40,'&'}|parametre_url{screen_name,#GET{screen_name},'&'}}{0,1}>

      Dans le feed/twitter_user_timeline

    • J’ai le même souci, je ne parviens a afficher de résultat avec la boucle data et le critère {source twitter,statuses/user_timeline}.

      Cependant la configuration dans l’espace privé affiche correctement le fil du compte.

      Qu’est-ce qui m’échappe ?

    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