Het eerste wat je nodig hebt is een "stand-alone" script, waarin je de twee functies opneemt:
OnInstall(e)
OnOpen(e), welk het menu maakt
Zorg dat de code draait vertrekkende vanuit een lege spreadsheet.
Alle data die nodig is om initieel mee te starten, zal je vanuit de app moeten aanmaken.
Ga naar Cloud console en maak een nieuw project aan.
Het is logisch dat je hiervoor dezelfde naam gebruik als je stand-alone script file.
Om te weten welke scopes je script nodig heeft, dus ook welke API's actief moeten zijn, ga je naar info in je Apps Scrip, waaronder je de lijst van scopes kan terug vinden.
Principieel worden de meeste scopes door Google zelf vrij goed gedetecteerd en kan je hiermee starten.
Nadien kan je eventueel te ver open staande scopes verkleinen.
Allow this application to run when you are not present https://www.googleapis.com/auth/script.scriptapp
See, edit, create, and delete all your Google Sheets spreadsheets https://www.googleapis.com/auth/spreadsheets
See, edit, create, and delete all your Google Slides presentations https://www.googleapis.com/auth/presentations
View and manage your forms in Google Drive https://www.googleapis.com/auth/forms
See, edit, create, and delete all your Google Docs documents https://www.googleapis.com/auth/documents
Connect to an external service https://www.googleapis.com/auth/script.external_request
See and download all your Google Drive files https://www.googleapis.com/auth/drive.readonly
We zien uit voorgaande lijst dat er verschillende API's dienen geactiveerd te worden:
script
spreadsheets
presentations
forms
documents
drive
Vermits je script verschillende API's gebruikt moet je deze activeren voor dit project.
Ga hiervoor naar het menu via "API's and Services" en kies bovenaan "Enable APIS and Services"
Via het zoekvenster kan je zoeken naar de betreffende API's en deze activeren.
Open via "API's and Services de optie OAuth consent screen.
De keuze voor internal of external maken per project en nadien aanpassen.
In ons voorbeeld kiezen we voor Internal, waardoor de app niet dient geverifieerd te worden door Google.
Eens de app gemaakt is, kan je nog kiezen om deze external ter beschikking te stellen.
Gebruik de App naam en geef je email adres op.
Je kan een logo maken, waardoor je app beter herkend wordt.
Geef eventueel verdere info in, zoals de Authorisation domain en Developer contact info.
Als volgende onderdeel dien je de scope te bepalen voor deze app.
Deze kan je terug vinden in de info van het script en dien je manueel toe te voegen, één per lijn.
Add to table en update, waarna je het overzicht krijg, met eventueel de mogelijkheid om dit aan te passen naar een external app.
Nu de GCP setup is gebeurt moeten we het stand-alone script koppelen aan dit project.
Hiervoor ga je naar het Dashboard in GCP console en kopieer je de Project number vanuit de GCP console naar de settings van het script onder de rubriek Google Cloud Platform (GCP) project
Maak nu een deployment, een versie die je wil publiceren.
Hiervoor ga je naar Deploy in Apps script en als er nog geen bestaat kies je voor New Deployment.
Voor een bestaande deployment kies je na de aanpassing van de code: Manage deployment /new version.
Selecteer voor het type Add-on en geef een omschrijving.
Nu krijg je een deployment ID, die je nodig hebt om je app te publiceren.
Om je app te kunnen publiceren in de Marketplace van Google, dien je de volgende SDK toe te voegen aan je project.
Ga hiervoor naar het menu via "API's and Services" en kies bovenaan "Enable APIS and Services"
Via het zoekvenster kan je zoeken naar de betreffende API's en deze activeren.
Google Workspace Marketplace SDK
Na het toevoegen kies je App Configuration.
Hierin dien je eveneens een aantal gegevens in te vullen.
Je kiest hier voor een Google Workspace add-on en een Apps Script, waarna je de Deployment ID, die je bekomen hebt uit voorgaande moet invullen.
Kies voor de optie Sheet add-on, waarna je een aantal extra gegevens moet invullen.
De Project Script ID vind je in de settings van je Apps Script (IDs)
De version, kan je vinden in je deploy/manage deployments en is het getal achter de URL van de library, in het voorbeeld was dit 3.
Vul de scopes terug in, zoals voorheen door ze toe te voegen aan de bestaande lijst.
De twee die er reeds in staan moeten er blijven staan.
https://www.googleapis.com/auth/script.scriptapp
https://www.googleapis.com/auth/spreadsheets
https://www.googleapis.com/auth/presentations
https://www.googleapis.com/auth/forms
https://www.googleapis.com/auth/documents
https://www.googleapis.com/auth/script.external_request
https://www.googleapis.com/auth/drive.readonly
Vul de rest van de gegevens aan met eventueel een Analytics ID, als je deze bezit.
Bepaal nu wie de app mag gebruiken en waar ze zichtbaar is.
Door de keuze individual+admin kan iedereen binnen het domain deze app installeren.
Door de keuze private, zal deze enkel zichtbaar zijn in jouw domain en is er geen verificatie van Google nodig.
Unlisted laat je uit, zodat de app kan gevonden worden in de Google Marketplace van je domain.
Na het bewaren van de vorige info komt er links een menu bij:
Store listing
Kies deze:
Vul de gegevens in die voorzien zijn van een sterretje.
Kies voor de regio waarvoor je app moet dienen en welke je gebruikt hebt binnen je domain.
In ons geval was dit in Belgie. (All regions is een andere prijszetting)
Druk op Save
Vermits we deze app enkel intern gebruiken is de uitkomst Approved.
Tevens vind je hier de URL van de app terug die gebruikers kunnen gebruiken om de add-on te installeren.
Wanneer je op de link klikt wordt je rechtstreeks verwezen naar de Marketplace.
Je vind nu je app terug in de Marketplace.
Vermits het enkel intern is, zal deze app enkel door gebruikers van je domain zichtbaar zijn.
Je kan deze app ook als admin installeren waardoor ze voor alle gebruikers zichtbaar is, of slechts voor een beperkte groep of enkel via extentions install add-ons, als je kiest voor OFF for everyone.
Van hieruit kunnen de gebruikers de app gaan installeren.
Link naar Marketplace/QuizToFirestore
Vanaf nu zal deze add-on zichtbaar zijn in de Extensions menu (als hij als admin ingesteld is) of kan een gebruiker hem zelf installeren.
Wanneer je geen andere code maakt maar dezelfde app code will updaten, zodat alle gebruikers die reeds de add-on gebruiken ook de nieuwe code krijgen, dan dien je bij het deploy geen New deployment, maar Manage deployment te kiezen.
Hierdoor blijven alle settings van de publicatie in de Google Market place nagenoeg dezelfde (linken en codes) en dien je enkel de versie nummer aan te passen.
In het Apps script Deploy menu kies voor Manage Deployments
Kies in het Version venster voor New version, hierdoor zal er een volgende nummer verschijnen.
Ga naar de Cloud console/project/APIs en kies hier voor de Google Worspace Marketplace SDK/App configuration
Vul hierin het nieuwe versienummer in, dit is de laatste versie die je in je deployment hebt staan.
Klik nu onderaan Save.
Hierdoor wordt de code voor alle gebruikers geupdate en hebben ze allemaal de laatste versie staan (bugfixing)