#calendar #google-calendar-api #email-notifications
#Календарь #google-calendar-api #уведомления по электронной почте
Вопрос:
Мое приложение nodejs обращается к API календаря Google, используя учетные данные учетной записи службы. Я могу создавать события, а также отправлять уведомления по электронной почте участникам с моего личного почтового идентификатора, хотя я использую свой идентификатор пользователя домена в качестве олицетворения. Однако, если я обновляю события, используя идентификатор домена в качестве олицетворения, электронные письма отправляются с почтового идентификатора пользователя домена, что довольно сбивает с толку. Это ожидаемое поведение? Я хочу, чтобы все электронные письма отправлялись с моего личного почтового идентификатора. Возможно ли это?
Я уже выполнил делегирование по всему домену, используя идентификатор пользователя домена. Для лучшего понимания позвольте мне просто объяснить. Теперь у меня есть три идентификатора.
- Мой личный идентификатор Gmail
- Идентификатор учетной записи службы, созданный с использованием указанного выше личного идентификатора.
- Идентификатор пользователя домена. Отдельный почтовый идентификатор домена, который предоставляет делегирование полномочий по всему домену с целью приглашения гостей на мероприятия.
Теперь, когда я использую идентификатор пользователя домена для создания событий, почта отправляется с моего личного идентификатора электронной почты, а не с идентификатора пользователя домена. Но при обновлении событий с использованием идентификатора пользователя домена в качестве олицетворения почта отправляется с идентификатора пользователя домена, а не с моего личного идентификатора. Что довольно сбивает с толку. Если я не указываю олицетворение при обновлении событий, почта отправляется с идентификатора учетной записи службы. То же самое относится и к событиям удаления. Теперь я хочу, чтобы все электронные письма отправлялись с личного почтового идентификатора. А не с учетной записи службы или идентификатора домена. Пожалуйста, помогите
Ниже приведен фрагмент nodejs для олицетворения. Я использовал почтовый идентификатор пользователя домена в качестве олицетворения.
this.jwtClient = new JWT(client_email,null, private_key,
SCOPES,impersonator);
Ответ №1:
Трудно понять вашу проблему, не видя ваш код, но что я могу сказать:
-
Если вы хотите, чтобы учетная запись службы обновляла событие от ВАШЕГО имени, вам необходимо создать для этой цели экземпляр учетной записи службы, выдающий себя за ВАС, а не за любого другого пользователя домена.
-
Очевидно, что это будет работать, только если у вас есть разрешение на обновление события — это может быть не так, если событие находится в личном календаре пользователя, где вы являетесь только гостем и не получили разрешения на изменение события.
Комментарии:
1. Привет, ziganotschka, спасибо за ответ. Я обновил сообщение фрагментом кода. Если я использую свой личный почтовый идентификатор в качестве олицетворения, я получаю ошибку unauthorised_Client. Однако это тот же личный почтовый идентификатор, который я использовал для создания учетной записи службы.
2. Итак
impersonator
, ваш идентификатор электронной почты? В этом случае это означает, что вы не авторизованы для выполнения обновления, которое вы хотите. в конце концов, если вы создали событие в календаре пользователя от его имени — по умолчанию вам не разрешено изменять это событие от своего имени. Если только вы не предоставили вам общий доступ к этому календарю и не получили разрешение на внесение изменений. Исключение — если вы (impersonator
) являетесь суперадминистратором — смотрите здесь .3. Обходным путем было бы добавить себя во время создания события в качестве участника и установить параметр
guestsCanModify
наtrue
.4. Да, «имитатор» — это мой личный почтовый идентификатор. Тем не менее, я являюсь владельцем календаря. Также в ответе на событие, полученном от Google api, мой личный идентификатор упоминается как организатор мероприятия. Идентификатор пользователя домена упоминается как создатель события. Означает ли это, что организатор мероприятия не может обновить событие? Я установил impersonator в качестве своего личного идентификатора
5. При создании события в личном календаре создателем и организатором события будет одно и то же лицо. Если вы укажете другой органайзер в запросе на создание — эта спецификация будет автоматически удалена. Поскольку организатор доступен только для чтения, за исключением случаев импорта события ..