Copie-colle ce code en remplaçant ‘myFolderID’ par l’ID de ton dossier Drive et ‘https://mysample.webhook.com/’ par l’URL de ton webhook Make :
// Remplace 'myFolderID' avec l'ID du dossier Google Drive à surveiller et '<https://mysample.webhook.com>' par l'URL de ton Custom Webhookconst folderId = 'myFolderID';
const webhookUrl = '<https://mysample.webhook.com>';
const cache =CacheService.getScriptCache();
functionisRecentlyCreated(file) {
const now =newDate();
const threshold = 60 * 1000;// Vérifie les fichiers créés dans la dernière minute
return now - file.getLastUpdated() < threshold;
}
functioncheckForNewFiles() {
const folder =DriveApp.getFolderById(folderId);
const files = folder.getFiles();
let newFilesFound =false;
while (files.hasNext()) {
const file = files.next();
const fileId = file.getId();
// Vérifie dans le cache si le fichier a déjà été traité
if (!cache.get(fileId)) {
if (isRecentlyCreated(file)) {
const payload = { fileId };
UrlFetchApp.fetch(webhookUrl, {
method: 'post',
contentType: 'application/json',
payload:JSON.stringify(payload)
});
cache.put(fileId, 'processed', 60 * 60);// Garder en cache 1h
console.log(`Nouveau fichier trouvé : ${fileId}`);
newFilesFound =true;
}
}else {
console.log(`Fichier ${fileId} déjà traité`);
}
}
if (!newFilesFound) {
console.log('Aucun nouveau fichier trouvé');
}
}
functionstartMonitoring() {
// Planifier une vérification périodique des nouveaux fichiers (ex: chaque minute)
ScriptApp.newTrigger('checkForNewFiles')
.timeBased()
.everyMinutes(1)
.create();
}
functionmain() {
startMonitoring();
}