You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+1-2Lines changed: 1 addition & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -109,8 +109,7 @@ The Gemini API key must be set as a Script Property (`GEMINI_API_KEY`) in Apps S
109
109
-**No Node.js built-ins** — everything runs on Google's servers
110
110
-`appsscript.json` must be in `dist/` for clasp push (the build script copies it)
111
111
- Drive Advanced Service must be enabled in the Apps Script editor AND declared in `appsscript.json`
112
-
- Custom functions run in `AuthMode.CUSTOM_FUNCTION`, which provides only the `spreadsheets.currentonly` scope. `PropertiesService` works (no scope needed). `UrlFetchApp` works for API-key-based calls (e.g. Gemini). `ScriptApp.getOAuthToken()` returns a token, but it is scoped to `spreadsheets.currentonly` only — not to `drive` or any other declared scope. `DriveApp` and other OAuth-requiring services fail with a permissions error.
113
-
-**Drive file access from `SSI()` is not supported.**`fetchAndEncodeFile` uses `UrlFetchApp` + `ScriptApp.getOAuthToken()`, but the custom function token lacks the `drive` scope, so Drive API calls return 401. Drive file processing belongs to the `runBatchAI` batch tool (menu-triggered, full auth context). A service account workaround exists but requires sharing every file with the service account email — impractical for a cell formula.
112
+
-`PropertiesService.getScriptProperties()` is available in custom functions once the add-on has been authorized by the user (opening the menu triggers authorization)
114
113
-`.clasp.json` is generated at deploy time by copying `.clasp.dev.json` or `.clasp.prod.json`
0 commit comments