Quantcast

Lors de la très intéressante édition 2017 de la Conférence Filemaker, une partie de la première journée était consacrée aux nouvelles fonctionnalités de cURL et JSON intégrées dans la version 16 de Filemaker. Occasion parfaite pour revenir sur ces nouvelles fonctions qui font passer Filemaker dans une nouvelle ère.

Qu’est-ce que cURL ?

cURL est un ensemble de commandes permettant d’interagir entre deux entités d’un réseau. Pour faire simple, c’est une porte d’entrée et un langage commun pour « communiquer » entre deux outils qui sont au départ différent en passant par des méthodes REST qui sont :

  • GET : pour récupérer et lister les éléments
  • PUT : pour remplacer une informations
  • POST : pour ajouter une donnée
  • DELETE : pour supprimer un élément

Qu’est-ce que JSON ?

JSON est un format permettant de représenter des données (tout comme xml).

Nous allons maintenant voir ci-dessous par un exemple simple et concret d’interaction avec WordPress pour récupérer les tags des articles ainsi que poster un article.

Comment configurer WordPress ?

Pour WordPress, il vous faut plusieurs choses :

  • Depuis la version 4.7, l’API REST est intégrée à WordPress, donc vous n’avez rien a installer pour la faire fonctionnner. Vous devrez pouvoir y accéder en ajoutant /wp-json/wp/v2 à la fin de votre URL comme ceci : https://www.pro-soft.fr/wordpress-filemaker/pro-soft.fr/wp-json/wp/v2
  • Pour l’authentification, qui sera nécessaire pour mettre à jour les articles par exemple, il vous faudra créer un utilisateur avec des droits limités et ensuite installer le plugin JSON Basic Authentication disponible à cette adresse.
  • Plongez-vous dans la documentation de l’API WordPress qui vous donnera réponse à toutes vos interrogations !

Et maintenant à l’action en lançant la commande pour récupérer les mots-clés (appelés tags) du site.

Utiliser JSON pour récupérer les mots-clés d’un site WordPress

Dans votre base Filemaker, vous pouvez créer un table avec un champ nombre id et un champ texte nom et lancer le script suivant :

Définir variable [ $url ; Valeur: "https://www.pro-soft.fr/wordpress-filemaker/pro-soft.fr/wp-json/wp/v2/tags/" ] // URL de l'API WordPress permettant de récupérer les tags
Insérer depuis URL [ Sélectionner ; Avec boîte de dialogue: Non ; $JSON ; $url ] 
Définir variable [ $nombre ; Valeur: DecompteValeurs ( JSONListKeys ( $JSON; "")  ) ] //on récupère le nombre de tags
Si [ $nombre > 0 ] 
    Définir variable [ $items ; Valeur: JSONListKeys ( $JSON; "") ] // on liste les éléments
    Définir variable [ $i ; Valeur: 1 ] 
    Boucle
        Définir variable [ $item ; Valeur: JSONGetElement( $JSON ; ObtenirValeur ( $items ; $i ) ) ] // on récupère le 1er élément
        Définir variable [ $id ; Valeur: JSONGetElement( $item ; "id" ) ] 
        Définir variable [ $name ; Valeur: JSONGetElement( $item ; "name" ) ] 
        Activer modèle [ “tag” (web_tag) ; Animation: Aucune ]
        Nouvel enreg./requête //On ajoute les tags un par un dans la base de données
        Définir rubrique [ web_tag::id ; $id ] 
        Définir rubrique [ web_tag::nom ; $name ] 
        Définir variable [ $i ; Valeur: $i + 1 ] 
        Fin de boucle si [ $i > $nombre ] 
    Fin de boucle
Fin de si
Activer modèle [ modèle d'origine ; Animation: Aucune ]

Attention ce script ne récupérera que les 10 premiers tags du site web (voir la documentation).

Vous pouvez télécharger le fichier exemple à cette adresse.

Lancer une commande cURL depuis Filemaker pour poster un article sur votre site wordpress

Cette fois nous aurons besoin d’ajouter des éléments dans la requète cURL :

Définir variable [ $data ; Valeur: JSONFormatElements( JSONSetElement( "{}" ; ["title" ; Mon nouveau titre d'article ; JSONString] ) ) ] 
Insérer depuis URL [ Sélectionner ; Avec boîte de dialogue: Non ; $result ; "http://www.wikipark.fr/wp-json/wp/v2/posts/" & id_du_post ; Options cURL: "-X POST " & "-u utilisateur:mot_de_passe " & "-H \"Content-Type: application/json;\" " & "-d @$data" ]

Voilà les différents paramètres de la requète :

  • « -X POST « : On envoie les données
  • « -u utilisateur:mot_de_passe « : On utilise le login et mot de passe de l’utilisateur défini précédemment
  • « -H \ »Content-Type: application/json;\ » « : On envoie l’entête JSON pour permettre de communiquer avec WordPress
  • « -d @$data » : On envoie les données définis dans la variable précédente au format JSON.

Comme vu ci-dessus avec un exemple simple, il est possible d’interagir avec WordPress très facilement en passant par cURL et JSON. On peut ainsi imaginer piloter WordPress (articles, tags, catégories et même utilisateurs) depuis Filemaker 16 !

Pour plus d’informations, contactez-nous