Publier un document Google Sheets au format JSON

Google Sheets peut servir à publier des données au format JSON qui seront ensuite consommées par une application web. Voici comment faire et c’est plutôt simple !

Depuis plus de dix ans, j’utilise Google Sheets pour gérer et diffuser des données vers des applications web en utilisant le format JSON. Mais les outils Google ont profondément évolués et ce qui marchait avant ne fonctionne pas toujours aujourd’hui.

J’ai donc été obligé de revoir ma procédure de publication JSON ! La voici en détails.

Étape 1 : créer le document

Évidemment. Sans document, pas de publication !

Sa structure et son contenu sont totalement libres. Ils vont dépendre de l’usage que vous ferez de votre JSON. C’est évidemment plus simple si les colonnes définissent des propriétés / attributs et si les lignes correspondent à des enregistrements.

Bref, faites votre cuisine 😉

Étape 2 : publier le document

Pour exploiter les données au format JSON, il faut d’abord publier le document Google Sheets. Mais attention, il y a une petite subtilité : il s’agit bien d’une publication et non d’un partage ! Donc on oublie (pour le moment) le gros bouton Partager à droite.

Pour publier le document Google Sheets :

  1. Dans le menu Fichier, cliquer sur Publier sur le web.
  2. Choisir soit le document entier, soit une seule feuille (comme toujours en informatique, moins on en fait, plus c’est sécurisé !).
  3. Garder le format proposé par défaut : Page.
  4. Cliquer sur le bouton Publier.

Google donne une URL d’accès au document, mais ne la copier pas ! Elle ne sert à rien dans notre cas de publication au format JSON. Elle n’est utile que pour les autres types de publication (via page web ou iframe).

Fenêtre de paramétrage de publication du document Google Sheets.
Paramètres de publication du document Google Sheets. L’adresse créée par Google ne nous servira pas pour la publication au format JSON.

Étape 3 : récupérer la clé du document

C’est maintenant que le gros bouton Partager (à droite) va nous être utile car c’est là que se cache la clé du document qui va nous servir dans l’URL finale.

Pour obtenir le lien de partage :

  1. Cliquer sur le bouton Partager.
  2. Ne pas modifier les droits ! Cela peut paraître étrange, mais comme le document est déjà publié, il n’est pas nécessaire d’ajouter des droits de partage.
  3. Copier le lien de partage proposé par Google.
  4. Récupérer uniquement la clé du document dans ce lien (le lien entier n’est pas utile).
Fenêtre de paramétrage du partage du document Google Sheets.
Paramètres de partage du document. Seule la copie du lien est utile.

Voici un exemple de lien de partage :

https://docs.google.com/spreadsheets/d/1P_YLBeFA7a9e753QkRiKratfYrGPmjkMQDLLDp-nAFg/edit?usp=sharing

Et sa clé à récupérer :

1P_YLBeFA7a9e753QkRiKratfYrGPmjkMQDLLDp-nAFg

Étape 4 : créer l’URL de publication JSON

Pour publier les données au format JSON, il faut construire une URL qui a cette forme :

https://spreadsheets.google.com/feeds/cells/{clé du document}/{numéro de feuille}/public/full?alt=json
  • {clé du document} est la clé du document que vous avez récupérée à l’étape précédente.
  • {numéro de feuille} est le numéro de la feuille (ou onglet) du document que vous souhaitez publier.

Avec l’exemple de l’étape 3, l’adresse exploitable devient :

https://spreadsheets.google.com/feeds/cells/1P_YLBeFA7a9e753QkRiKratfYrGPmjkMQDLLDp-nAFg/1/public/full?alt=json

Voilà, vous tenez l’URL à utiliser dans votre application web pour récupérer les données Google Sheets au format JSON !

Pour conclure

L’exemple cité me sert à alimenter en données un de mes (vieux) outils Magento : la liste des pays du monde selon les normes ISO 3166-1 alpha-2 et alpha-3. L’application vient consommer le JSON et propose un filtrage à facettes grâce à Simile Exhibit (un ancien mais extraordinaire outil de rendu de données sémantiques !).

Exemple de sortie JSON sur une adresse de publication de document Google Sheets.
Exemple de sortie JSON d’un document Google Sheets publié.
Exemple d'application web utilisant les données JSON.
Exemple d’application qui exploite les données JSON fournies par Google Sheets.

Côté Google Sheets, sans être insurmontable, la procédure mériterait d’être plus simple ! Pourquoi ne pas avoir mis JSON comme format de publication, à côté des formats Page et Intégré (iframe) ? Mystère…

Commentaires

Ajouter un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *