💨 Importer vos datas d'un Google Sheet
🔰 Lien exemple: https://creator.celestory.io/project/8x5_uqKpY
✨ Lien export: https://api.celestory.io/play/ZTfV7kb5ch
Dans un 💨 Import Données, le catalogue de données est défini par une liste de pages de Menus vous permettant de naviguer entre vos différents produits ou services.
L'actualisation est définie par le fait que les valeurs de cellules d'un Google Sheet (excel Google) sont directement importées en temps réel par l'App par une connectivité continue.
🔹 Pour en savoir plus sur la création de Menu:
http://help.celestory.io/fr/articles/4204688-creer-un-menu-et-ses-pages
🔸 Pour découvrir comment créer cette connectivité continue, allez sur le sous-graphe Bloc JS Import Cell dans le menu latéral gauche des modules.
⬛ Bloc Lancer JS
Ce bloc permet de lancer un code écrit en Javascript. Il suffit de copier/coller le code disponible ci dessous:
*
// spreadsheet
const apiKey = celestoryPoints.get('apiKey', '');
const spreadsheetId = celestoryPoints.get('id', '');
const spreadsheetCell = celestoryPoints.get('cell', '');
const spreadsheetSheet = celestoryPoints.get('sheet', '');
// load google apis to access google drive
await loadExternalScript('gapi', 'https://apis.google.com/js/api.js
try {
const cell = await new Promise((resolve, reject) => {
window.gapi.load('client:auth2', async () => {
try {
// Authenticate to google apis
await gapi.client.init({
apiKey,
discoveryDocs: '[https://sheets.googleapis.com/$discovery/rest?version=v4](https://sheets.googleapis.com/%24discovery/rest?version=v4)'
});
// Get spreadsheet range (single cell)
const spreadsheetRange = await gapi.client.sheets.spreadsheets.values.get({
spreadsheetId,
range: ${spreadsheetSheet}!${spreadsheetCell}, // Get the given cell in the given sheet
});
// Get results
if (spreadsheetRange && spreadsheetRange.result && spreadsheetRange.result.values && spreadsheetRange.result.values.length === 1) {
// Spreadsheet & cell was found
resolve(spreadsheetRange.result.values0][0
} else {
// Spreadsheet or cell was not found
reject(new Error(Cannot read cell ${spreadsheetCell} in sheet ${spreadsheetName} in spreadsheet ${spreadsheetId}));
}
} catch (e) {
// An error occured
reject(e);
}
});
});
celestoryPoints.set('value', cell);
} catch (e) {
celestoryPoints.set('error', e.toString());
}
*
ou simplement de copier/coller un bloc Lancer Javascript appelé Import cellule pour importer une autre donnée d'une autre cellule.
Vous pouvez importer cette donnée de n'importe quelle feuille de n'importe quel spreadsheet de n'importe quel compte Google.
Vous n'avez qu'à remplir dans la fenêtre d'édition du bloc JS les zones suivantes:
◾ apiKey:
C'est le compte Google qui est le propriétaire de la Spreadsheet qui doit cliquer sur ce lien
Laissez Quickstart par défaut, puis cliquez sur Next:
Enfin copiez votre API Key et collez là dans le bloc.
Puis vous donnez la clé apiKey correspondante.
◾ id:
Il s'agit de l'id de la Spreadsheet. Dans cet exemple, son url est indiqué sur le lien 2 ci-dessous:
L'id du lien 2 est donc:
1rd5oiw7rVUNVS2dKSV8sy_jemSyBjMR3eTEIzngYo6o
◾ cell:
Il s'agit du nom de la cellule que vous voulez
connecter pour pouvoir la modifier par la suite et
l'importer automatiquement dans l'app.
Ex: B2
Il faudra créer autant de blocs JS "Import cellule" que de cellules à connecter.
◾ sheet:
Il s'agit du feuillet (l'onglet en bas de la
Spreadsheet) sur lequel se trouve la cellule à
importer. Attention à bien écrire correctement son nom.
Le ⬛ Bloc JS se compose également de deux sorties et de deux points de valeur:
🔹 D'abord la sortie par défaut prise si le code fonctionne.
🔹 Si le code ne fonctionne pas, le flux est renvoyé vers catch.
🔹 Enfin le point erreur va indiquer la nature de l'erreur en anglais.
C'est pour cela que ce point de valeur est directement relié à l'inconnue du bloc d'Alerte qui suit, afin de donner un détail immédiat en cas d'aiguillage sur la sortie "catch".
🔹 Enfin, bien sur le point value est la valeur extraite de la cellule ciblée par le bloc JS.
C'est pour cela qu'elle est connectée à la value entrante d'un bloc 🟦 Assignation, afin d'associer cette valeur à celle d'une variable dont l'application se souviendra.
✨ Lien export: https://api.celestory.io/play/ZTfV7kb5ch
Dans un 💨 Import Données, le catalogue de données est défini par une liste de pages de Menus vous permettant de naviguer entre vos différents produits ou services.
L'actualisation est définie par le fait que les valeurs de cellules d'un Google Sheet (excel Google) sont directement importées en temps réel par l'App par une connectivité continue.
🔹 Pour en savoir plus sur la création de Menu:
http://help.celestory.io/fr/articles/4204688-creer-un-menu-et-ses-pages
🔸 Pour découvrir comment créer cette connectivité continue, allez sur le sous-graphe Bloc JS Import Cell dans le menu latéral gauche des modules.
⬛ Bloc Lancer JS
Ce bloc permet de lancer un code écrit en Javascript. Il suffit de copier/coller le code disponible ci dessous:
*
// spreadsheet
const apiKey = celestoryPoints.get('apiKey', '');
const spreadsheetId = celestoryPoints.get('id', '');
const spreadsheetCell = celestoryPoints.get('cell', '');
const spreadsheetSheet = celestoryPoints.get('sheet', '');
// load google apis to access google drive
await loadExternalScript('gapi', 'https://apis.google.com/js/api.js
try {
const cell = await new Promise((resolve, reject) => {
window.gapi.load('client:auth2', async () => {
try {
// Authenticate to google apis
await gapi.client.init({
apiKey,
discoveryDocs: '[https://sheets.googleapis.com/$discovery/rest?version=v4](https://sheets.googleapis.com/%24discovery/rest?version=v4)'
});
// Get spreadsheet range (single cell)
const spreadsheetRange = await gapi.client.sheets.spreadsheets.values.get({
spreadsheetId,
range: ${spreadsheetSheet}!${spreadsheetCell}, // Get the given cell in the given sheet
});
// Get results
if (spreadsheetRange && spreadsheetRange.result && spreadsheetRange.result.values && spreadsheetRange.result.values.length === 1) {
// Spreadsheet & cell was found
resolve(spreadsheetRange.result.values0][0
} else {
// Spreadsheet or cell was not found
reject(new Error(Cannot read cell ${spreadsheetCell} in sheet ${spreadsheetName} in spreadsheet ${spreadsheetId}));
}
} catch (e) {
// An error occured
reject(e);
}
});
});
celestoryPoints.set('value', cell);
} catch (e) {
celestoryPoints.set('error', e.toString());
}
*
ou simplement de copier/coller un bloc Lancer Javascript appelé Import cellule pour importer une autre donnée d'une autre cellule.
Vous pouvez importer cette donnée de n'importe quelle feuille de n'importe quel spreadsheet de n'importe quel compte Google.
Vous n'avez qu'à remplir dans la fenêtre d'édition du bloc JS les zones suivantes:
◾ apiKey:
C'est le compte Google qui est le propriétaire de la Spreadsheet qui doit cliquer sur ce lien
Laissez Quickstart par défaut, puis cliquez sur Next:
Enfin copiez votre API Key et collez là dans le bloc.
Puis vous donnez la clé apiKey correspondante.
◾ id:
Il s'agit de l'id de la Spreadsheet. Dans cet exemple, son url est indiqué sur le lien 2 ci-dessous:
L'id du lien 2 est donc:
1rd5oiw7rVUNVS2dKSV8sy_jemSyBjMR3eTEIzngYo6o
◾ cell:
Il s'agit du nom de la cellule que vous voulez
connecter pour pouvoir la modifier par la suite et
l'importer automatiquement dans l'app.
Ex: B2
Il faudra créer autant de blocs JS "Import cellule" que de cellules à connecter.
◾ sheet:
Il s'agit du feuillet (l'onglet en bas de la
Spreadsheet) sur lequel se trouve la cellule à
importer. Attention à bien écrire correctement son nom.
Le ⬛ Bloc JS se compose également de deux sorties et de deux points de valeur:
🔹 D'abord la sortie par défaut prise si le code fonctionne.
🔹 Si le code ne fonctionne pas, le flux est renvoyé vers catch.
🔹 Enfin le point erreur va indiquer la nature de l'erreur en anglais.
C'est pour cela que ce point de valeur est directement relié à l'inconnue du bloc d'Alerte qui suit, afin de donner un détail immédiat en cas d'aiguillage sur la sortie "catch".
🔹 Enfin, bien sur le point value est la valeur extraite de la cellule ciblée par le bloc JS.
C'est pour cela qu'elle est connectée à la value entrante d'un bloc 🟦 Assignation, afin d'associer cette valeur à celle d'une variable dont l'application se souviendra.
Mis à jour le : 29/03/2021
Merci !