В моем веб-приложении мне нужно добавить разрешение на чтение freebusy для моей служебной учетной записи в основной календарь адресов Gmail, предоставленных пользователями.
Как мне это сделать?
Делегируйте полномочия на уровне домена своему сервисному аккаунту
Вы используете учетную запись службы, вы не используете. Учетные записи служб предварительно авторизованы в случае календаря Google через рабочее пространство Google. Если вы хотите запросить согласие пользователя, вам следует использовать Oauth2, а не учетную запись службы.
Я, должно быть, неправильно понял концепции. В таком случае я вижу только два пути: 1. Запросить у пользователя авторизацию на полный доступ, а потом добавить разрешение, что очень плохо. 2. Попросите их вручную добавить разрешение. Есть ли лучшее решение?
Вы не можете попросить их вручную добавить разрешение на учетную запись службы с помощью API календаря Google, это не разрешено. Используйте oauth2 и авторизуйте пользователя
Что, если вместо этого я использую Gmail владельца проекта? Использование oauth2 дает мне токен доступа, срок действия которого истекает через час; Мне нужно разрешение до тех пор, пока пользователь решит отозвать его.
Вот почему вы используете токен обновления, чтобы получить новый токен доступа. Владелец проекта на консоли разработчика Google не имеет ничего общего с доступом, предоставленным учетной записи календаря пользователя. Смотрите это
Теперь понял, спасибо. Я собираюсь принять ваш ответ, потому что он, безусловно, отвечает на неправильный вопрос, который я задал.
Извините, я думаю, это мой плохой английский и незнание предмета; Я имел в виду, как мне получить согласие конечного пользователя и получить разрешение, созданное от его имени в первую очередь.