je dois faire comme ?
With this:
I get this:
This https://drive.google.com/uc?export=download&id= is always the same so, you can use a variable in your app for this string and the id (1aUwpLk6E7isJ8IAZn3kNId9QL1DW4qzs) is what you have to recover from googleSheet.
ok,
je vous montre le bouton, car je crois qu'il faut que je modifie mes blocs au niveau de "make a list" à "imagemodifbrico" qui concerne "image1" ?
j'ai tout ça dans le bloc bouton14
The truth is that I have already gotten lost...let's go in parts:
1.- You upload an image to your Google Drive and you get the image ID in response.
2.- You save that ID in googleSheet.
3.- When you want to see the image. you retrieve the googleSheet ID and download the image.
Which steps do you complete correctly and which do you not?
je sélectionne l'image et l'envoie à google drive, ça c'est ok
l'identifiant n'apparait pas dans googleSheet !
c'est mon bloc web GoText
Where are you storing the received ID (after send the image to drive) into googleSheet?
je faisait un copier/collé dans la cellule dessous "imageBrico1" , je ne le reçois pas automatiquement !
That is the URL of you drive folder...not the ID received once you have sent the image to drive.
l'ID du dossier est là , mais j'ai pas l'Url complète !
c'est le bouton qui me permet d'envoyer l'image dans le google drive (mais ça n'envoie pas dans googleSheet), et du coup j'aimerais aussi qu'il me permette d'afficher l'image dans un autre écran.
Why are you including the folder in Post? you already have it in script:
function doPost(e) {
var data = Utilities.base64Decode(e.parameters.data);
var blob = Utilities.newBlob(data, e.parameters.mimetype, e.parameters.filename);
var fileID = DriveApp.getFolderById('1u-C2WP_O1asjVhzzKpEdabKixlFDiWxK').createFile(blob).getId();
return ContentService.createTextOutput(fileID);
And what part of your blocks/script is storing the image ID returned by that script into the googleSheet?
That scrip is storing the image you send in google drive, in the indicated folder and it is returning its ID to your app. No more...
To store the image ID into googleSheet you need to do something with the ID...for example, you can modify the before script to do it:
function doPost(e) {
var ss = SpreadsheetApp.openById('<YOUR_SHEET>');
var sh = ss.getSheetByName('<SHEET_NAME(Sheet1)>');
var data = Utilities.base64Decode(e.parameters.data);
var blob = Utilities.newBlob(data, e.parameters.mimetype, e.parameters.filename);
var fileID = DriveApp.getFolderById('<YOUR_DRIVE_FOLDER>').createFile(blob).getId();
var rowData = [];
rowData.push(e.parameters.filename[0]);
rowData.push(fileID);
sh.appendRow(rowData);
return ContentService.createTextOutput('File name: ' + e.parameters.filename + ' with Google Drive ID: ' + fileID);
}
This stores the image in google drive, in the indicated folder, take the ID and store it in googleSheet (in the spreadsheet indicated, in the sheet indicated). It append a new row each time and stores in First column the name of the file and in second column the ID.
ah d'accord
donc c'est pour ça que je n'arrivais pas à avoir l'ID de l'image dans google sheet !
merci pour le nouveau script, mais est il possible d'avoir un exemple avec les blocs ?
With the blocks to store the images? But you were already able to save the images on the drive, right? Anyway, you have the example in before responses:
The only difference is that the script now will store the image ID also in googleSheet.
ok , merci je vais essayer
Comment modifier le script pour qu'il n'ajoute pas de nouvelle ligne (je voudrais modifier les images), et stocker dans la troisième colonne pour le nom du fichier et quatrième colonne pour l'ID ?
Of the second row? (first one I assume is for the fields names)
Change this:
by this:
sh.getRange(2,3).setValue(e.parameters.filename[0]);
sh.getRange(2,4).setValue(fileID);
oui, merci
j'ai fais comme ça , mais est ce que je supprime aussi var rowData = [ ] ?
var rowData = ;
sh.getRange(2,3).setValue(e.parameters.filename[0]);
sh.getRange(2,4).setValue(fileID);
return ContentService.createTextOutput('File name: ' + e.parameters.filename + ' with Google Drive ID: ' + fileID);
J'ai l'image dans google drive,
dans googlesheets j'ai l'ID de l'image dans ma colonne 4.
Mais je pense que j'ai un problème avec les blocs car je n'ai rien dans la colonne 3 ?
mon bloc web
share your script here
c'est le script complet :
function doPost(e) {
var ss = SpreadsheetApp.openById('1I1Tff_GCNKuUWckdXAQmL9OIP-7_H0CoC51KWt8koFM');
var sh = ss.getSheetByName("Sheet4");
var data = Utilities.base64Decode(e.parameters.data);
var blob = Utilities.newBlob(data, e.parameters.mimetype, e.parameters.filename);
var fileID = DriveApp.getFolderById('1u-C2WP_O1asjVhzzKpEdabKixlFDiWxK').createFile(blob).getId();
var rowData = ;
sh.getRange(2,3).setValue(e.parameters.filename[0]);
sh.getRange(2,4).setValue(fileID);
return ContentService.createTextOutput('File name: ' + e.parameters.filename + ' with Google Drive ID: ' + fileID);
}
function doGet(e) {
var ss = SpreadsheetApp.openById('1I1Tff_GCNKuUWckdXAQmL9OIP-7_H0CoC51KWt8koFM');
var sheet = ss.getSheetByName("Sheet3");
var sh = ss.getSheetByName("Sheet4");
var sh1 = ss.getSheetByName("Sheet5");
var nom = e.parameter.nom ;
var motdepasse = e.parameter.motdepasse ;
var email = e.parameter.email;
var msg;
// Get a list of current registered users
if (e.parameter.func == 'getUsers') {
var lr = sheet.getLastRow();
var users = sheet.getRange("A2:A" + lr).getValues();
return ContentService.createTextOutput(JSON.stringify(users));
}
else if ( e.parameter.func == "register" ) {
sheet.appendRow([nom,motdepasse,email]);
sh.appendRow([nom]);
sh1.appendRow([nom]);
return ContentService.createTextOutput("Nouveau compte");
}
else if ( e.parameter.func == "login" ) {
var msg = "Information incorrecte";
var loginData = sheet.getDataRange().getValues();
for ( var i = 0; i < loginData.length; i++ ) {
if ( nom == loginData[i][0] && motdepasse == loginData[i][1] ) {
msg = "connecté";
}
}
return ContentService.createTextOutput(msg);
}
else if ( e.parameter.func == "supprimer" ) {
var loginData = sheet.getDataRange().getValues();
for (var i = 0; i < loginData.length; i++ ) {
if ( nom == loginData[i][0] && motdepasse == loginData[i][1] ) {
msg = "compte supprimé";
sheet.deleteRow(i+1);
}
}
var reportData = sh.getDataRange().getValues();
for (var i = 0; i < reportData.length; i++ ) {
if ( nom == reportData[i][0] ) {
msg = "compte supprimé";
sh.deleteRow(i+1);
}
}
var reportData = sh1.getDataRange().getValues();
for (var i = 0; i < reportData.length; i++ ) {
if ( nom == reportData[i][0] ) {
msg = "compte supprimé";
sh1.deleteRow(i+1);
}
}
return ContentService.createTextOutput(msg);
}
// writes data then reads the same row back
if (e.parameter.func == "Read"){
var nom = e.parameter.nom ;
var actualites = e.parameter.actualites.replaceAll('|','\n') ;
var conges = e.parameter.conges.replaceAll('|','\n') ;
var lundi = e.parameter.lundi.replaceAll('|','\n') ;
var mardi = e.parameter.mardi.replaceAll('|','\n') ;
var mercredi = e.parameter.mercredi.replaceAll('|','\n') ;
var jeudi = e.parameter.jeudi.replaceAll('|','\n');
var vendredi = e.parameter.vendredi.replaceAll('|','\n');
sh1.appendRow([nom,actualites,conges,lundi,mardi,mercredi,jeudi,vendredi]);
SpreadsheetApp.flush();
var ref = ;
var rg = sh1.getDataRange().getValues();
for (var i=0;i<rg.length;i++) {
if (rg[i][0] == nom) {
ref.push(rg[i][0]);
ref.push(rg[i][1].replaceAll('\n','|'));
ref.push(rg[i][2].replaceAll('\n','|'));
ref.push(rg[i][3].replaceAll('\n','|'));
ref.push(rg[i][4].replaceAll('\n','|'));
ref.push(rg[i][5].replaceAll('\n','|'));
ref.push(rg[i][6].replaceAll('\n','|'));
ref.push(rg[i][7].replaceAll('\n','|'));
}
}
return ContentService.createTextOutput(JSON.stringify(ref)).setMimeType(ContentService.MimeType.JSON);
}
if (e.parameter.func == "ReadData"){
SpreadsheetApp.flush();
var ref = ;
var rg = sh1.getDataRange().getValues();
for (var i=0;i<rg.length;i++) {
if (rg[i][0] == nom) {
ref.push(rg[i][0]);
ref.push(rg[i][1].replaceAll('\n','|'));
ref.push(rg[i][2].replaceAll('\n','|'));
ref.push(rg[i][3].replaceAll('\n','|'));
ref.push(rg[i][4].replaceAll('\n','|'));
ref.push(rg[i][5].replaceAll('\n','|'));
ref.push(rg[i][6].replaceAll('\n','|'));
ref.push(rg[i][7].replaceAll('\n','|'));
}
}
return ContentService.createTextOutput(JSON.stringify(ref)).setMimeType(ContentService.MimeType.JSON);
}
if (e.parameter.func == "ReadReport") {
var nom = e.parameter.nom ;
var bricolages = e.parameter.bricolages.replaceAll('|','\n') ;
var imagebrico1 = e.parameter.imagebrico1 ;
var imagebrico2 = e.parameter.imagebrico2 ;
var imagebrico3 = e.parameter.imagebrico3 ;
var sorties = e.parameter.sorties.replaceAll('|','\n') ;
var imagesortie1 = e.parameter.imagesortie1;
var imagesortie2 = e.parameter.imagesortie2;
var imagesortie3 = e.parameter.imagesortie3 ;
var evenemts = e.parameter.evenemts.replaceAll('|','\n');
var imageevene1 = e.parameter.imageevene1;
var imageevene2 = e.parameter.imageevene2;
var imageevene3 = e.parameter.imageevene3;
sh.appendRow([nom,bricolages,imagebrico1,imagebrico2,imagebrico3,sorties,imagesortie1,imagesortie2,imagesortie3,evenemts,imageevene1,imageevene2,imageevene3]);
SpreadsheetApp.flush();
var ref = ;
var rg = sh.getDataRange().getValues();
for (var i=0;i<rg.length;i++) {
if (rg[i][0] == nom) {
ref.push(rg[i][0]);
ref.push(rg[i][1].replaceAll('\n','|'));
ref.push(rg[i][2]);
ref.push(rg[i][3]);
ref.push(rg[i][4]);
ref.push(rg[i][5].replaceAll('\n','|'));
ref.push(rg[i][6]);
ref.push(rg[i][7]);
ref.push(rg[i][8]);
ref.push(rg[i][9].replaceAll('\n','|'));
ref.push(rg[i][10]);
ref.push(rg[i][11]);
ref.push(rg[i][12]);
}
}
return ContentService.createTextOutput(JSON.stringify(ref)).setMimeType(ContentService.MimeType.JSON);
}
if (e.parameter.func == "ReadReportData"){
SpreadsheetApp.flush();
var ref = ;
var rg = sh.getDataRange().getValues();
for (var i=0;i<rg.length;i++) {
if (rg[i][0] == nom) {
ref.push(rg[i][0]);
ref.push(rg[i][1].replaceAll('\n','|'));
ref.push(rg[i][2]);
ref.push(rg[i][3]);
ref.push(rg[i][4]);
ref.push(rg[i][5].replaceAll('\n','|'));
ref.push(rg[i][6]);
ref.push(rg[i][7]);
ref.push(rg[i][8]);
ref.push(rg[i][9].replaceAll('\n','|'));
ref.push(rg[i][10]);
ref.push(rg[i][11]);
ref.push(rg[i][12]);
}
}
return ContentService.createTextOutput(JSON.stringify(ref)).setMimeType(ContentService.MimeType.JSON);
}
if (e.parameter.func == "Modifier") {
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh1 = ss.getSheetByName(e.parameter.SH);
var rows = sh1.getDataRange().getValues();
var row, rowid;
var newData = ;
var data = JSON.parse('[' + e.parameter.DATA + ']');
for (var j=0; j<data[0].length; j++) {
newData.push(data[0][j].replaceAll('|','\n'));
}
for (var i=0;i<rows.length;i++) {
if ( e.parameter.nom == rows[i][0] ) {
rowid = (i);
}
}
newData = [newData];
sh1.getRange((parseInt(rowid) + 1),1,1,data[0].length).setValues(newData);
SpreadsheetApp.flush();
var returnData = ;
newRow = sh1.getRange((parseInt(rowid) + 1),1,1,data[0].length).getValues();
for (var n=0; n<newRow[0].length; n++) {
returnData.push(newRow[0][n].replaceAll('\n','|'));
}
returnData = [returnData];
return ContentService.createTextOutput(JSON.stringify(returnData));
}
if (e.parameter.func == "Modifier1") {
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh = ss.getSheetByName(e.parameter.SHT);
var rows = sh.getDataRange().getValues();
var row, rowid;
var newData = ;
var data = JSON.parse('[' + e.parameter.DATA + ']');
for (var j=0; j<data[0].length; j++) {
newData.push(data[0][j].replaceAll('|','\n'));
}
for (var i=0;i<rows.length;i++) {
if ( e.parameter.nom == rows[i][0] ) {
rowid = (i);
}
}
newData = [newData];
sh.getRange((parseInt(rowid) + 1),1,1,data[0].length).setValues(newData);
SpreadsheetApp.flush();
var returnData = ;
newRow = sh.getRange((parseInt(rowid) + 1),1,1,data[0].length).getValues();
for (var n=0; n<newRow[0].length; n++) {
returnData.push(newRow[0][n].replaceAll('\n','|'));
}
returnData = [returnData];
return ContentService.createTextOutput(JSON.stringify(returnData));
}
you can delete that, yes...anyway, it seems ok.