J'essaie de savoir si un document Google est partagé avec moi avant de l'ouvrir. Je collecte les travaux des étudiants via un formulaire Google et je souhaite ajouter une fonction à la feuille de calcul des réponses qui me dit "si" le document est partagé avec moi. Est-ce possible?
J'ai essayé le suivant, mais je ne pouvais pas le faire fonctionner. De plus, si cela fonctionne, il ne me dit que "si" il a des éditeurs, pas si le document a moi en tant qu'éditeur.
function isShared(){
var editors = DriveApp.getFileById().getEditors()
if(editors.length > 0){
return true
}
return false
}
Document cible
Les identifiants de documents sont dans la colonne G et j'aimerais que "vrai" ou "faux" soit affiché dans la colonne H.
1: https://developers.google.com/apps-script/guides/sheets/functions#using_apps_script_services
De https://developers.google.com/apps-script/reference/drive/drive-app#getfilebyidid
getFileById (id)
Obtient le fichier avec l'ID donné. Lève une exception de script si le fichier n'existe pas ou si l'utilisateur n'a pas la permission d'y accéder.
Exécutez myFunction à partir de l'éditeur de script ou à l'aide d'un menu personnalisé.
function myFunction(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Period6');
var range = sheet.getRange('G2:G20'); //Gets the file's ID range
var output = SHAREDWITHME(range.getValues()); //Checks each value on the selected range
//Sets the results to the right of the selected range
range.offset(0, 1).setValues(output);
}
/**
* Check files IDs are from files shared with me
*
* @param {A1:A5} input The range with file IDs.
* @return TRUE or FALSE
*
*/
function SHAREDWITHME(input) {
if (input.map) { // Test whether input is an array.
return input.map(SHAREDWITHME) // Recurse over array if so.
} else {
try {
var file = DriveApp.getFileById(input);
return 'TRUE'
} catch(e) {
return 'FALSE';
}
}
}