Я могу подумать о двух возможных подходах к этому, когда веб-приложение развернуто для выполнения от имени пользователя, обращающегося к нему:
- Сценарий A: Создание учетная запись службы для доступа к файлам, хранящимся на вашем диске, и для создания листов Google.
- Сценарий B: Создание отдельного проекта скрипта приложений, развернутого как исполняемый файл API и вызывать его функции из основного веб-приложения.
Эти методы жизнеспособны, но у каждого есть ряд плюсов и минусов.
Оба требуют аутентификации OAuth2, но этот бит довольно легко обрабатывать благодаря Eri c библиотеке OAuth2 Коледы .
Кроме того, в обоих сценариях ios вам необходимо привязать / связать ваш основной проект скрипта приложений с проектом GCP и включить соответствующие службы, в вашем случае Google Sheets и API Google Drive (* 1023) * см. документацию для более подробной информации ).
Для Сценарий A , учетная запись службы должна быть создана в том же проекте GCP. Для сценария B вторичный проект скрипта приложений для исполняемого файла API также должен быть привязан к тому же проекту GCP.
Проблемы, указанные c для сценария A
Вам необходимо предоставить доступ к файлам и папкам, к которым вы хотите получить доступ / изменить (и / или создать контент), с учетной записью службы. У учетной записи службы есть собственный адрес электронной почты, и вы можете делиться с ней файлами / папками на диске Google, как и с любой другой учетной записью Gmail.
Для вновь созданного контента могут возникнуть проблемы с разрешениями, но, к счастью, файлы, созданные в папке, наследуют разрешения этой папки, так что вы должны быть хороши на этом фронте.
Однако вам придется напрямую использовать API REST для служб Drive и Sheets; вызов их через UrlFetch вместе с токеном доступа (сгенерированным с использованием библиотеки OAuth2) для учетной записи службы.
Проблемы, определяемые c для сценария B
Вам нужно будет настроить отдельный проект Apps Script и создать API publi c (набор не закрытых функций). ) который может быть вызван третьей стороной.
Когда сценарий привязан к тому же проекту GCP, что и основное веб-приложение, вам потребуется сгенерировать дополнительные учетные данные OAuth2 из консоли GCP под панелью IAM (Identity Access Management).
Вы будете использовать Client ID и Client Secret, чтобы сгенерировать sh token, указывающий c для вашей учетной записи (с использованием библиотеки OAuth2). Затем вы будете использовать этот токен refre sh в своем основном веб-приложении для генерации необходимого токена доступа для исполняемого файла API (также с использованием библиотеки OAuth2). Как и в предыдущем сценарии, вам нужно использовать UrlFetch для вызова методов исполняемого файла API с использованием сгенерированного токена доступа.
Следует отметить, что вы не можете использовать триггеры в исполняемом коде API, поскольку они недопустимы.
Очевидно, я упустил из виду многие детали, но это должно хватит, чтобы начать.
Желаем удачи.