Есть ли способ изменить событие, созданное в Календаре Google из внешнего приложения?

Мы создаем приложение для управления событиями, и мы изучаем, можно ли нашим пользователям создавать события непосредственно из Календаря Google. В настоящее время наш рабочий процесс:

  • Пользователь создает событие в Календаре Google
  • Пользователь добавляет наш адрес электронной почты в качестве гостя мероприятия.
  • Мы получаем уведомление о событиях из Календаря Google и регистрируем событие в нашей системе.

Теперь мы хотим разрешить пользователям редактировать сведения о мероприятии (в частности, описание и местоположение) на нашей панели приложений, и вот здесь возникает проблема: как мы можем обновить событие в календаре пользователя?

Я пытался использовать iMiP почту, но не удалось, я попытался увеличить порядковый номер и изменить поле ORGANIZER на наш собственный почтовый адрес, даже если я отметил событие может быть изменено гостем в Календаре Google, событие не может быть обновлено нашей почтой. (Обновление: Прикреплено последняя версия моего тестового кода, я ничего не пропустил в своей почте?) Мы также попытались отправить обновленное событие в виде обычного файла ICS в приложении (напрямую через GMail) и тоже не удалось.

С другой стороны, если мы изменим UID в ICS файле события, отправьте его как обычное вложение и импортируем его в Календарь Google, тогда это (новое) событие может быть обновлено последующим ICS файлом с тем же UID. Однако мы не хотим реализовывать таким образом, так как он создает новое событие в календаре пользователя.

Итак, мой вопрос: кроме использования Google Calendar API (который является нашим последним средством, если нет другого хорошего способа реализовать это), есть ли способ обновить пользовательское событие из нашего приложения?

Ответы

Ответ 1

Единственное, что может сделать ваше приложение для редактирования события, будет API календаря Google.

Вам нужно будет использовать аутентификацию Oauth2, чтобы пользователь получил доступ к соответствующему календарю. Поиск события с помощью events.list, возможно, добавляет q tearm для поиска события по дате.

Как только у вас появится соответствующее событие, вы должны посмотреть events.patch патч позволяет обновлять только выбранные поля в событии, а не полные event.update, в котором вам потребуется обновить все поля в событии.