SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 246 visiteurs en ce moment

Accueil > Outils pour plugins > SpipService > SpipService

SpipService

11 mai 2012 – par sébastien - lambda – 17 commentaires

8 votes

Cette contribution surcharge des fichiers et/ou des fonctions de SPIP : il n’est donc pas garanti qu’elle fonctionne avec d’autres contributions surchargeant lesdits fichiers et/ou fonctions. Sa compatibilité avec les versions de SPIP est donc assez restreinte.

SpipService est un outil permettant d’actualiser un site Spip depuis n’importe quel environnement. Ce plugin permet à un service tiers de gérer le contenu du système via des services web (WebService).

« SpipService est une interface entre vous et le reste du monde... »

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

Voir en ligne : http://plugins.spip.net/spipservice

P.-S.

SpipService surcharge le fichier auth.php de Spip.

Dernière modification de cette page le 3 mai 2013

Retour en haut de la page

Vos commentaires

  • Le 12 janvier 2015 à 12:44, par Thibault Hilaire En réponse à : SpipService

    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 :

    ’Accept-Encoding’ : ’gzip, deflate’, ’User-Agent’ : ’python-requests/2.5.0 CPython/3.4.0 Darwin/13.4.0’, ’Authorization’ : ’Basic VGhpYjp0b3Rv’, ’Accept’ : ’*/*’, ’Connection’ : ’keep-alive’

    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

  • Le 22 novembre 2014 à 22:26, par triton En réponse à : SpipService

    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

    • Le 23 novembre 2014 à 17:39, par test En réponse à : SpipService

      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

  • Le 18 janvier 2013 à 11:46, par christophe-trac En réponse à : SpipService

    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

  • Le 17 mai 2012 à 18:15, par rburton En réponse à : SpipService

    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

    • Le 18 mai 2012 à 16:12, par sébastien - lambda En réponse à : SpipService

      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

  • Le 16 mai 2012 à 13:13, par Seb - Vent du net En réponse à : SpipService

    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

  • Le 14 mai 2012 à 09:31, par Haqqtiviste En réponse à : SpipService

    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

    • Le 14 mai 2012 à 09:41, par sébastien - lambda En réponse à : SpipService

      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.

    • Le 14 mai 2012 à 18:09, par ? En réponse à : SpipService

      c’est corrigé et commité sur la zone, d’ici une heure le zip sera mis à jour.
      enjoy !

    • Le 14 mai 2012 à 18:28, par sébastien - lambda En réponse à : SpipService

      une nouvelle fois l’auteur du message ci-dessus...

    Répondre à ce message

  • Le 14 mai 2012 à 09:15, par Haqqtiviste En réponse à : SpipService

    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.

    • Le 14 mai 2012 à 09:25, par ? En réponse à : SpipService

      Je n’ai pas rencontré ce soucis.
      la liste des plugins présents et la version présice de ton spip3 stp ?

    • Le 14 mai 2012 à 09:28, par sébastien - lambda En réponse à : SpipService

      je ne m’étais pas connecté... le message du dessus est le mien.

    • Le 14 mai 2012 à 09:34, par Haqqtiviste En réponse à : SpipService

      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

  • Le 14 mai 2012 à 09:08, par Haqqtiviste En réponse à : SpipService

    bonjour
    dans spip 3, le plugin s’installe mais aucun nom, titre visible pour l’activer, la case reste vide...

    Répondre à ce message

  • Le 11 mai 2012 à 21:46, par Teddy Payet En réponse à : SpipService

    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

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Metas +

    3 décembre – commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Critère {mots}

    6 août 2009 – 316 commentaires

    Permettre de sélectionner facilement des objets SPIP ayant un ou des mots clefs en communs.

  • LinkCheck : vérificateur de liens

    13 février 2015 – 64 commentaires

    Ce plugin permet de chercher et tester l’ensemble des liens présents dans les objets. Vous pourrez donc en quelques clics connaître les liens brisés ou défectueux qui se sont immiscés dans le contenu de votre site SPIP. La vérification s’effectue en (...)

  • Import ICS 2 (agenda distant)

    2 août – 39 commentaires

    La version 2 du plugin « import ICS » en reprend la principale fonctionnalité, à savoir l’ajout automatique d’évènements distants dans la liste des évènements d’un site. À la différence de la première version, elle ne dépend pas du plugin « Séminaire » et est (...)

  • GIS 4

    11 août 2012 – 1286 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)