API календаря Google: как добавить бесплатное разрешение в календарь пользователя?

В моем веб-приложении мне нужно добавить разрешение на чтение freebusy для моей служебной учетной записи в основной календарь адресов Gmail, предоставленных пользователями.

Как мне это сделать?

Шаблоны Angular PrimeNg
Шаблоны Angular PrimeNg
Как привнести проверку типов в наши шаблоны Angular, использующие компоненты библиотеки PrimeNg, и настроить их отображение с помощью встроенной...
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Начала с розового дизайна
Начала с розового дизайна
Pink Design - это система дизайна Appwrite с открытым исходным кодом для создания последовательных и многократно используемых пользовательских...
Шлюз в PHP
Шлюз в PHP
API-шлюз (AG) - это сервер, который действует как единая точка входа для набора микросервисов.
14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
0
0
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Делегируйте полномочия на уровне домена своему сервисному аккаунту

  1. В консоли администратора вашего домена выберите Главное меню > Безопасность > Доступ и управление данными > Управление API.
  2. На панели «Делегирование на уровне домена» выберите «Управление делегированием на уровне домена».
  3. Щелкните Добавить новый.
  4. В поле «Идентификатор клиента» введите идентификатор клиента, полученный в ходе описанных выше шагов по созданию учетной записи службы.
  5. В поле OAuth Scopes введите разделенный запятыми список областей, необходимых для вашего приложения. Используйте область действия https://www.googleapis.com/auth/calendar для полного доступа к Google Calendar API.
  6. Щелкните Авторизовать.

Извините, я думаю, это мой плохой английский и незнание предмета; Я имел в виду, как мне получить согласие конечного пользователя и получить разрешение, созданное от его имени в первую очередь.

Yusif 20.11.2022 07:47

Вы используете учетную запись службы, вы не используете. Учетные записи служб предварительно авторизованы в случае календаря Google через рабочее пространство Google. Если вы хотите запросить согласие пользователя, вам следует использовать Oauth2, а не учетную запись службы.

Linda Lawton - DaImTo 20.11.2022 11:44

Я, должно быть, неправильно понял концепции. В таком случае я вижу только два пути: 1. Запросить у пользователя авторизацию на полный доступ, а потом добавить разрешение, что очень плохо. 2. Попросите их вручную добавить разрешение. Есть ли лучшее решение?

Yusif 20.11.2022 12:15

Вы не можете попросить их вручную добавить разрешение на учетную запись службы с помощью API календаря Google, это не разрешено. Используйте oauth2 и авторизуйте пользователя

Linda Lawton - DaImTo 20.11.2022 15:43

Что, если вместо этого я использую Gmail владельца проекта? Использование oauth2 дает мне токен доступа, срок действия которого истекает через час; Мне нужно разрешение до тех пор, пока пользователь решит отозвать его.

Yusif 20.11.2022 18:04

Вот почему вы используете токен обновления, чтобы получить новый токен доступа. Владелец проекта на консоли разработчика Google не имеет ничего общего с доступом, предоставленным учетной записи календаря пользователя. Смотрите это

Linda Lawton - DaImTo 20.11.2022 19:59

Теперь понял, спасибо. Я собираюсь принять ваш ответ, потому что он, безусловно, отвечает на неправильный вопрос, который я задал.

Yusif 20.11.2022 20:41

Другие вопросы по теме