Script function not found: doGet
Dit hardnekkige probleem in Google Apps Script wordt vrijwel altijd veroorzaakt door één van de volgende drie dingen in de Apps Script-editor. Ook al staat doGet wél in je code, dan geeft Google deze foutmelding totdat de volgende stappen zijn doorlopen:
Google Apps Script onthoudt de oude versie van je webapp. Als je code wijzigt, blijft de oude URL naar de oude versie (zonder doGet) verwijzen.
Ga in je Apps Script-editor rechtsboven naar Implementeren (Deploy).
Klik op Implementatie beheren (Manage deployments).
Klik op het potloodje (Bewerken) bij je actieve webapp, of klik rechtsboven op Nieuwe implementatie (New deployment).
Kies bij type voor Web-app.
Belangrijk: Zet Versie op Nieuwe versie (New version).
Zorg dat Wie heeft toegang op Iedereen (Anyone) staat.
Klik op Implementeren en geef eventueel de benodigde toestemmingen. Gebruik daarna de nieuwe webapp-URL die je krijgt.
Controleer of er een blauw stipje naast de bestandsnaam in je Apps Script-editor staat. Zo ja, sla het project op met Ctrl + S (of het diskette-icoontje). Pas als het is opgeslagen, herkent Google de functie.
Controleer of de functie exact zo geschreven staat (hoofdlettergevoelig):
JavaScript
waarom staat er function doGet(e) en niet gewoon function doGet >
In Google Apps Script is function doGet(e) zo geschreven omdat de e staat voor event (gebeurtenis). Dit is een verplicht argument (parameter) dat Google automatisch meestuurt naar je functie wanneer er een HTTP GET-verzoek (bijvoorbeeld via een web-app URL) binnenkomt.
Dit is waarom die e erbij staat en waarom function doGet zonder haakjes of e niet zou werken zoals Google bedoelt:
Informatie meesturen: Via dat e-object geeft Google allerlei handige gegevens mee over het inkomende verzoek. Denk bijvoorbeeld aan URL-parameters (zoals ?naam=Jan&leeftijd=30), die je in je code kunt uitlezen via e.parameter.naam.
Herkenning door Google: Google Apps Script zoekt specifiek naar de functienaam doGet(e) om te weten dat jouw script als web-app moet fungeren. Als je er function doGet van maakt (zonder (e)), weet het systeem nog steeds wel welke functie het moet aanroepen, maar mis je de cruciale data uit het request als iemand URL-parameters meetuwt.
Standaard JavaScript/Apps Script syntax: In JavaScript geef je tussen de haakjes () aan welke variabelen een functie van buitenaf mag ontvangen. Zelfs als je de parameters in jouw script niet direct gebruikt, verwacht Google Apps Script dat de functie het e-argument kan ontvangen.
Kort gezegd: doGet is de naam die Google herkent, en (e) zorgt ervoor dat je script de binnenkomende gegevens van de gebruiker kan ontvangen en gebruiken.