Mode d’emploi
Le plugin s’installe comme tous les autres
Pré-requis
Ce plugin nécessite le module cURL de PHP pour fonctionner.
Par ailleurs, votre fichier .htaccess doit correctement réécrire les urls .api. C’est fait par défaut dans le fichier htaccess.txt qui est installé à la racine de SPIP et mis à jour à chaque version. Pour l’activer, vous devez le renommer .htaccess : cf l’article Faire une mise à jour. Et si vous avez déjà personnalisé votre htaccess, alors il faut juste y reporter la règle de réécriture des urls en .api.
Configuration
Une fois le plugin activé, il faut passer sur sa page de configuration accessible depuis la page des plugins.
Configurer l’accès à Mastodon
Le plugin s’enregistre automatiquement auprès de chaque instance Mastodon avec laquelle il devra discuter, en demandant une clé d’accès qui sera stockée dans le dossier config/credentials
.
Pour ajouter un compte Mastodon dans la configuration, indiquez l’instance (par défaut le plugin enverra vers https://mamot.fr) et cliquez sur “Ajouter un compte”.
Vous serez envoyé vers la page d’autorisation de l’instance concernée : connectez-vous avec le compte concerné si besoin, et autorisez l’application à utiliser votre compte. Vous serez alors redirigé vers la page de configuration et le compte ajouté devrait apparaitre dans la liste des comptes disponibles.

Si vous ajoutez plusieurs comptes, vous pouvez choisir celui qui sera utilisé par défaut pour les envois de pouets depuis l’interface de SPIP. Les autres comptes sont utilisables quand vous utilisez la fonction pouet()
en PHP, dont le premier argument indique le compte de destination (voir plus loin).
Configurer l’envoi de Pouets
Une fois les comptes configurés, vous pouvez ensuite indiquer :
- la visibilité par défaut des messages envoyés :
- Publics (apparaissent sur les timelines publiques)
- Non listé (les messages sont publics mais n’apparaissent pas sur les timelines)
- Privé (les messages ne sont visibles que des seuls abonnés au compte Mastodon)
- Direct (les messages ne sont visibles que des seules personnes mentionnées dans le message)
- 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 personnaliser le Pouet qui sera envoyé.
Pouetter 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 personnalisé.
Pour rétablir le message d’origine, il suffit d’effacer complètement votre message personnalisé, et d’enregistrer.
Pouetter 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 > Mastodon

Depuis cette page vous pouvez modifier la visibilité de chaque message envoyé, au cas par cas.
API pouet()
Ce plugin offre une fonction pouet()
que l’on peut utiliser pour envoyer des messages sur Mastodon.
La fonction s’utilise comme suit :
include_spip('inc/Mastodon);
pouet('Bonjour, monde');
La fonction peut prendre un second argument permettant d’indiquer :
-
user_name
: le nom du compte Mastodon à utiliser (pseudo@instance.fr, il faut évidemment que ce compte ait été ajouté dans la configuration du plugin) -
visibility
: la visibilité du message (par défaut celle indiquée dans la configuration) -
max_len
: la longueur maxi des messages (par défaut 500 caractères)
Boucle (DATA){source Mastodon}
Le plugin permet l’utilisation facile de l’API Mastodon dans une boucle (DATA)
pour afficher par exemple vos pouets, les pouets de votre timeline, les pouets résultats d’une recherche....
Pour ce faire, il suffit d’utiliser {source Mastodon,...}
dans une boucle (DATA)
, en y précisant quelle méthode de l’API utiliser. Toutes les méthodes GET de l’API (voir https://docs.joinmastodon.org/client/intro/) sont accessibles, avec leurs arguments sous forme de query-string.
Par exemple :
- pour lister ses derniers pouets on écrira
{source mastodon,#VAL{timelines/home}}
(qui utilise https://docs.joinmastodon.org/methods/timelines/) - pour lister les pouets comportant un hashtag résultats de recherche sur “spip” on écrira
{source mastodon,#VAL{timelines/tag/#ENV{hashtag}}
(qui utilise https://docs.joinmastodon.org/methods/timelines/)
Il y a une API de recherche, mais elle ne vous permettra de trouver que des comptes et des hashtags, car par construction la recherche plein texte n’est pas proposée par Mastodon.
Dans un exemple complet, cela donne :
<B_pouets>
<ul class='liste-items'>
<BOUCLE_pouets(DATA)
{source mastodon,#VAL{timelines/home}|parametre_url{mastodon_account,#ENV{account,''}}}
{pagination 10}
>
<li class='item pouet'>
<img src='#VALEUR{account/avatar_static}' style='float:left;margin:0 10px 10px 0' width="32" height="32"/>
from <a href='#VALEUR{account/url}'>[(#VALEUR{account}|mastodon_user_full_screen_name)][ \((#VALEUR{account/display_name})\)]</a>
[<a href="#VALEUR{url}">(#VALEUR{created_at}|affdate)</a>]
<blockquote>
#VALEUR{content}
<BOUCLE_images(POUR){tableau #VALEUR{media_attachments}}>[(#VALEUR{type}|=={image}|oui)<img src="#VALEUR{url}" />]</BOUCLE_images>
</blockquote>
</li>
</BOUCLE_pouets>
</ul>
[<p class='pagination'>(#PAGINATION{precedent_suivant})</p>]
</B_pouets>
Attention : les requêtes sont faites à l’API Mastodon en utilisant le compte Mastodon associé au site, et donc seuls les pouets visibles par cet utilisateur seront listés dans tous les cas.
Discussions by date of activity
15 discussions
Bonjour
Juste pour signaler que dans les modèles “timeline” du plugin :
Par ailleurs, en activant les warning, il y a :
Reply to this message
Bonjour,
lorsque j’essaye de connecter mon compte Mastodon, mon compte est bien affiché mais j’obtiens systématiquement le message “L’URL de redirection n’est pas valide.”
Je dois préciser que mon instance est installé dans un contexte “yunohost” et fonctionne correctement qu’en fenêtre de navigation privée sous firefox.
Ce contexte est-il incompatible ou me manque-il quelque chose ?
En fait j’obtiens maintenant une erreur 404 aussi bien avec mon instance mastodon qu’avec un compte mamot
Idem en ce qui me concerne avec SPIP 3.2.8 en essayant d’installer le plugin dans sa version 1.8.1. J’obtiens une 404 lorsque mamot.fr redirige vers /mastodon_oauth.api/authorize/mamot.fr?code=….
Même résultat de mon côté avec la version 2.0.1du plugin et SPIP 4.1.5.
Bonjour. Lors de l’authentification, je tombe aussi sur une erreur 404 lorsque qu’on retourne sur notre site SPIP (v4).
En gros, quand on ajoute un compte depuis notre site, on est redirigé vers:
Ensuite, quand on donne l’autorisation depuis todon.eu, on est ensuite redirigé très logiquement vers:
.
Après ça, je tombe sur une erreur 404. Pour information, j’utilise nginx comme serveur oueb.
Mais bon, c’est vrai que le chemin mastodon_oauth.api/authorize/todon.eu n’a pas de raison de fonctionner.
Détail croustillant. J’ai bien un fichier de créé ici: config/credentials/ .
Mais, ma connexion SPIP/Mastodon n’est pas pour autant opérationnelle (le compte n’apparaît pas dans la page de configuration du plugin).
Une idée de ce qui cloche? Un contournement possible? Une amélioration du plugin à envisager?
Je viens de retester avec la dernière version (2.1.0) du plugin sur la dernière version de SPIP (4.3.2). Et j’ai le même souci. :-(
C’est parcequ’il faut activer la redirection des urls en .api
C’est fait par défaut avec le fichier htaccess.txt qui est livré avec SPIP, et qu’il faut renommer .htaccess
cf https://www.spip.net/fr_article1318.html
Mais si vous avez déjà votre propre .htaccess, alors il faut juste y ajouter la règle qui réécrit les urls en .api (et peut être d’autres règles utiles...)
Bonsoir. Et merci pour cette réponse qui me permet d’explorer des solutions.
J’utilise Nginx. Et c’est pour ça que les règles du fichier .htaccess ne sont pas applicables.
Je viens d’ajouter la règles à la section “location /” de ma configuration nginx:
rewrite ^/(ecrire/)?([\w]+)\.api([/.](.*))?$ /spip.php?action=api_$2&arg=$4 break;
Mais j’ai toujours le même souci. :-(
Je ne peux pas t’aider pour nginx... Si tu n’as pas de réponse ici, demande sur https://discuter.spip.net.
Reply to this message
Bonjour
La configuration du plugin achoppe sur “L’authentification du client a échoué à cause d’un client inconnu, d’aucune authentification de client incluse ou d’une méthode d’authentification non prise en charge.”
Une solution ?
Merci et Bonne année !
Reply to this message
bonjour,
La compatibilité SPIP4 est-elle prévue ?
bonnes fêtes de fin d’année à tous...
pam
Au moins en version 2.0.3, le plugin s’installe et se configure sur SPIP 4.2.
Reply to this message
Reply to this message
Bonjour,
je ne sais pas si ça vient de mon installation mais j’ai un problème avec les pouets. Si le texte à envoyer contient un lien, ça supprime une partie du texte. Voir l’exemple sur mon compte @Magnagues@framapiaf.org.
Merci pour toute réponse.
Reply to this message
bonjour,
je m’aperçois que depuis un certain temps, les pouets générés sont coupés à la publication 477 signes, alors qu’ils sont générés sur un peu plus... et comme la fin est le lien URL courte, ce sont les derniers caractères du lien qui sont coupés, le rendant inopérant...
Certains pouets sont complets , mais ce ne sont pas forcément les plus courts. Des pouets de 482 caractères sont complets quand certains sont coupés à moins de 480 caractères...
???
merci d’avance, et meilleurs voeux à tous
Reply to this message
bonjour et merci pour ce plugin qui fonctionne très bien pour moi...
est-il difficile de l’étendre aux brèves ?
cordialement;
Reply to this message
bonjour,
Chez moi ça pouet bien, sauf que je ne peu peu afficher dans ma boucle data que le compte par défaut. En fait peu importe le “account=” c’est le compte par defaut qui s’affiche.
Peut on afficher dans une boucle plusieurs compte mastodon ? et si c’est possible quelle est l’astuce ?
en tout cas merci pour ce travail.
bonjour, suite à un problème de mise à jour vers 1.8.1 , je me suis retrouvé avec le même problème que boris (Nov2018) , mais en supprimant les fichiers dans credentials je me retrouve avec “Erreur lors de la création de l’application” et credentials ne se refait pas.
Avez vous une solution ?
Reply to this message
Hello
D’abord merci pour ce plugin que je viens de découvrir.
J’ai néanmoins un petit souci : j’affiche bien les pouets d’une instance de Mastodon en utilisant l’exemple proposé plus haut mais je ne voudrais afficher que les pouets d’un utilisateur précis.
Possible ?
L’exemple prévoit explicitement qu’on peut lui passer un
account=
avec le nom de l’utilisateur (le nom du compte, pas le nom en clair) pour filtrer les pouets de cet utilisateur uniquement. Donc oui possible :)Merci pour cette réponse très rapide.
Désolé mais l’exemple n’est pas très clair pour moi. Imaginons que le compte soit @toto, à quel endroit doit-on indiquer account=@toto ?
Je ne m’en sors pas : tous mes essais aboutissent à un bloc vide.
Hello
J’ai testé par exemple
{source mastodon,#VAL{timelines/home}|parametre_url{mastodon_account,account=@toto}}
mais c’est vide.
Help !
Reply to this message
Add a comment
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Follow the comments:
|
