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 :
- Dans le menu Fichier, cliquer sur Publier sur le web.
- Choisir soit le document entier, soit une seule feuille (comme toujours en informatique, moins on en fait, plus c’est sécurisé !).
- Garder le format proposé par défaut : Page.
- 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).
É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 :
- Cliquer sur le bouton Partager.
- 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.
- Copier le lien de partage proposé par Google.
- Récupérer uniquement la clé du document dans ce lien (le lien entier n’est pas 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 !).
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