#authentication #google-calendar-api
Вопрос:
Я пытаюсь создать скрипт, который запускается на выделенном сервере для доступа к API календаря Google. Этот скрипт должен иметь доступ к нашим учетным записям Google Calendar, скажем, пользователя X, и ко всем другим календарям, к которым у пользователя X есть доступ. Мне не нужно запускать это через веб-браузер, а затем иметь доступ к календарям других людей (за пределами нашей организации). Это должно выполняться на сервере и иметь доступ только к календарям нашей организации (G Suite) и пользователям в нашей учетной записи G-Suite. В основном я хочу сделать следующие вещи:
- Создавайте календари и предоставляйте доступ другим участникам организации (G Suite)
- Создание/изменение событий в этих календарях
- Отправляйте уведомления о событиях
Из просмотра API календаря Google (https://developers.google.com/calendar/api/guides/auth), похоже, что единственный способ доступа-это аутентификация по протоколу OAuth, которая мне вообще не нужна, так как она будет выполняться на выделенном сервере через скрипт.
Есть ли способ сделать это? Я что-то упускаю в документации по API? Это кажется странным, что я не смогу получить доступ к нашим собственным данным календаря через серверный процесс и действительный/ограниченный ключ API (который я настроил).
Комментарии:
1. Вам потребуется создать учетную запись службы в GCP, чтобы разрешить межсерверную аутентификацию. Он по-прежнему использует OAuth 2.0, который нельзя удалить, но, по крайней мере, вам не нужно будет проходить аутентификацию вручную для каждого пользователя.
Ответ №1:
Ключи Api предоставляют вам доступ только к общедоступным данным, а не к личным данным пользователей.
Вам нужно будет настроить аутентификацию учетной записи службы и попросить администратора Google workspace настроить делегирование домена в учетной записи службы. Это даст учетной записи службы возможность предварительно выполнять действия от имени пользователя, которому принадлежат эти календари.