Une fois installé, imaginez toutes les possibilités qu’il vous offre... Les rédacteurs de votre site sont en constant mouvement, ils n’ont pas toujours un ordinateur branché sur la Toile à leur portée, mais ils ont leur Smartphone... Vous avez un blog, vous aimeriez qu’en l’actualisant, votre site Spip le soit aussi et sans dépendance. Les exemples sont multiples.
Évidemment il ne faut pas oublier que le meilleur environnement pour saisir du contenu reste l’interface privée de Spip. Ce plugin vous apportera des possibilités basiques mais il est développé sur un model évolutif.
Parlons maintenant des possibilités natives, oui « natives » car vous pourrez le faire évoluer très simplement mais on parlera de ça plus bas...
Voici donc la liste des services web acquis dès l’installation :
LECTURE :
- search -> retourne le résultat d’une recherche de rubriques/articles/brèves (au moins 3 caractères)
- getbystatut -> retournes les articles/brèves en fonction du statut demandé
- getbyauteur -> retourne les articles de d’un auteur
- getauteurloggedin -> retourne les informations sur l’utilisateur authentifié
- getchildren -> retourne les rubriques/articles/brèves sous forme d’arbre (permet de parcourir le contenu du site)
- getrubriquedata -> retournes les informations d’une rubrique
- getarticledata -> retourne les informations d’un article
- getbrevedata -> retourne les informations d’une brève
- getdocumentdata -> retourne les informations d’un document
- getarticledocuments -> retourne les documents d’un article
- getbrevedocuments -> retourne les documents d’une brève
- getrubriquedocuments -> retourne les documents d’une rubrique
ECRITURE :
- setrubrique -> fixe les informations d’une rubrique
- setarticle -> fixe les informations d’un article
- setbreve -> fixe les informations d’une brève
- setdocument -> fixe les informations d’un document
- adddocumentrubrique -> ajoute un document à une rubrique
- adddocumentarticle -> ajoute un document à un article
- adddocumentbreve -> ajoute un document à une brève
- institutearticle -> fixe le statut / date de publication d’un article
- institutebreve -> fixe le statut / date de publication d’une brève
- deletearticle -> supprime un article
- deleterubrique -> supprime une rubrique
- deletedocumentarticle -> supprime le document d’un article (simple dissociation sur Spip3)
- deletedocumentbreve -> supprime le document d’une brève (simple dissociation sur Spip3)
- deletedocumentrubrique -> supprime le document d’une rubrique (simple dissociation pour Spip3)
- addlogobreve -> fixe le logo d’une brève
- addlogorubrique -> fixe le logo d’une rubrique
- addlogoarticle -> fixe le logo d’un article
- deletelogobreve -> supprime le logo d’une brève
- deletelogorubrique -> supprime le logo d’une rubrique
- deletelogoarticle -> supprime le logo d’une brève
UTILITAIRES :
- clearcache -> vide le cache du CMS
- clearcacheimage -> vide le cache image du CMS
- authentication -> vérifie que l’authentification est bonne et que le plugin est bien installé
Penchons-nous maintenant sur le fonctionnement du plugin...
Je vais faire une brève description, néanmoins vous trouverez toutes les informations dont vous avez besoin dans la documentation technique.
Pour appeler un service web, vous devez faire une requête HTTP vers votre site. Une fois cette requête reçue par le serveur, elle passe par l’authentification de Spip. Elle arrive ensuite jusqu’à SpipService. À ce moment, le plugin va chercher le service web demandé en fonction des paramètres de la requête et vous retournera ensuite une réponse.
Note : SpipService prend en charge la notion de permission (y compris celles du plugin Accès Restreint). Par exemple, si vous avez configuré votre CMS de manière à ce qu’il ne soit pas possible d’ajouter des brèves, le plugin ne le permettra pas et vous pourrez obtenir cette information dans les données d’une rubrique retournées par le service ’getrubriquedata’ par exemple.
Parlons des ouvertures de SpipService !
Vous avez développé le plugin Chat (en passant, bravo Matthieu Marcillaud pour La Fabrique, magnifique !). Vous gérez donc maintenant un nouvel objet (façon de parler) éditorial mais qui n’est pas pris en charge par SpipService.
Et bien vous n’aurez qu’à définir quelques fichiers dans le dossier inc/ de ce plugin et le tour est joué. Là encore vous trouverez la procédure complète dans la documentation technique.
Note : SpipService log dans une table SQL les actions effectuées (services d’écriture seulement), il est donc simple de savoir qui a fait quoi et quand. Cependant l’interface dans le back-office n’est pas encore implémentée, mais cela fait partie de la TODO Liste.
Ce plugin est un premier jet et demande évidemment des évolutions. Je vous invite donc à me faire remonter vos propositions, remarques, problèmes et améliorations.
J’espère qu’il vous ouvrira de nouvelles portes...
Discussions par date d’activité
9 discussions
Bonjour
J’essaye de faire marcher spipservice depuis Python (pour automatiser la publication d’articles depuis un script), et pas moyen.
Serait-il possible d’obtenir un peu d’aide ?
1) Spipservice est fonctionnel, car si je suis authentifé sur la partie privée (donc avec session et cookie), je peux ensuite accéder depuis mon navigateur à une page du genre « http://www.votrespip.com/ecrire/?action=spipservice&service = getauteurloggedin&format=json »
2) Par contre, je ne peux pas y accéder depuis mon script Python
(c’est du Python, basé sur le module requests, qui gère bien l’authentification Basic ; le login et mot de passe ont été vérifié ;-) )
j’obtient juste une redirection vers la page de login.
J’ai vérifié le header de la requête, il me semble conforme à de l’authentification Basic :
3) Mon site est hébergé chez 1and1. Je n’ai aucune idée si il y a les mêmes problèmes qu’avec OVH (variable globale REMOTE_USER), mais j’ai aussi essayé de modifier le .htaccess comme précisé dans le readme.txt
J’ai aussi vérifié que la config de Spip permet l’authentification HTTP : j’ai bien ignore_auth_http = false ; dans ecrire/inc_version.php
Voilà, j’ai fait un peu le tour de ce qui me semblait « évident » à tester.
Je me trouve maintenant sans autre idée pour pouvoir accéder à spip via un service (sinon de tester XMLRPC).
Il y a-t-il d’autres points que je devrais vérifier, d’autres trucs à essayer pour voir d’où vient le problème (par exemple, un site spip où on sait que spipservice marche, pour voir si ça vient du script Python ?)
Je vous remercie beaucoup pour l’aide que vous pourriez m’apporter !!
Répondre à ce message
Bonjour,
ca l’a l air bien chouette... mais y’aurait moyen d avoir un petit exemple de code php qui permettrait d interroger un site spip par webservice ? Une url complète pour interroger le serveur spip ? C’est un domaine qui ne m’est pas très familier faut dire...
Un grand merci
triton
TEST
j ai l impression qu on ne reçoit plus de notification par mail lorsque quelqu’un répond, donc.... je teste....
/TEST
Répondre à ce message
Bonjour,
J’ai eu un soucis avec le format json lors de la réception des données.
C’était du à la fonction getRequestParam dans spip_service_utils.php qui passe un stripclslashes avant json.decode, du coup l’unicode n’était pas décodé.
Répondre à ce message
Bonjour,
à divers endroit, dans un spip 3.0 avec divers plugins (qui ont l’air de bien se porter)
la mention suivante
spipservice.titre_spipservice
par exemple dans els champs extras : avec le lien suivant
http://ns228695.ovh.net/spip/ecrire/?exec=champs_extras_edit&objet=spipservice
à d’autres endroits, il apparaît également comme un « objet éditorial »
je ne comprends pas pourquoi ...
par ailleurs, un petit mot d’explication supplémentaire sur l’authentification, j’ai pas trop compris ?...
Grand merci
ces Web Services sont une vraie nécessité aujourd’hui
RB
Salut,
en effet, SpipService a sa table dans la BDD, pour y insérer des logs et ainsi savoir qui a fait quoi et quand ! C’est surement pour cela qu’il apparait comme objet éditorial.
Concernant l’authentification, tout est dans la doc. Cependant, je vais faire quelques modifications pour le rendre non visible sur le réseau, il ne sera donc plus basé sur le HTTP Basic (enfin, cette version sera maintenue mais déconseillée) mais simplement passé en paramètre de la requête.
seb
Répondre à ce message
Hello,
Très bon plugin !
Vivement que les webservices soient directement intégrés à SPIP en natif.
Merci pour ce travail !
Répondre à ce message
en réponse au mail :
SPIP 3.0.0-rc [19216]
agenda 3.6
API de verif 0.1.14
champ extra 3.0.6
champ extra (interface) 3.0.3
en travaux 3.1.7
facteur 2.1.6
Formulaire de contact avancé 0.10.0
Image map des départements 0.2.0
Lecteur Multimédia 2.1.0
Menus 1.1.0
Mini Calendrier 2.1.0
NivoSlider 2.0.0
Saisies pour formulaires 1.25.3
YAML 1.5.0
pas mal d’entre eux sont en test, d’autres en stable
En effet, je viens de tester en local et même chose.
Je regarde ça en fin de journée et je ferai une mise à jour (pour demain j’espère)
merci de ta remarque.
c’est corrigé et commité sur la zone, d’ici une heure le zip sera mis à jour.
enjoy !
une nouvelle fois l’auteur du message ci-dessus...
Répondre à ce message
il n’apparait pas non plus une fois activé dans les la liste des plugins actifs.
pour le desactiver, comment fait on ?
effacement en FTP je présume.
Je n’ai pas rencontré ce soucis.
la liste des plugins présents et la version présice de ton spip3 stp ?
je ne m’étais pas connecté... le message du dessus est le mien.
en fait, il dit qu’il s’installe, mais en fait reste dans les inactifs, et l’espace du plugin (titre, version, etc) reste vide. uniquement les boutons activer et supprimer sont présents.
Répondre à ce message
bonjour
dans spip 3, le plugin s’installe mais aucun nom, titre visible pour l’activer, la case reste vide...
Répondre à ce message
Bonjour,
Excellent plugin !
Dans le même genre, on a le plugin XMLRPC réalisé par kent1 :
http://www.mediaspip.net/technical-documentation/plugins-used-by-mediaspip/xmlrpc-une-api-xml-rpc-pour-spip/article/support-xml-rpc-pour-spip
Cela offre la possibilité, par exemple, d’une iApp iPhone tout comme Wordpress for iOS :
http://ios.trac.wordpress.org/browser/trunk
http://ios.trac.wordpress.org/browser/trunk/WordPressApi/
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 :
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.
Suivre les commentaires : |