Google Calendar API и процесс проверки приложений Google

Я создаю веб-сайт для клиента, который использует API Календаря Google. По сути, клиент должен иметь возможность вводить свои идентификаторы календаря и указывать события на веб-сайте. Это обрабатывается с помощью функции firebase, которая выполняет запрос к Calendar API.

Первое, что я попробовал, - это следовать руководству Google по быстрому запуску для API календаря. Это работало некоторое время, пока не истек срок действия предоставленного ими временного токена доступа, и я понял, что токен доступа был временным.

Затем я создал свой собственный идентификатор клиента OAuth2 и использовал его. Это работало недолго, пока я не начал получать от Google ошибки «Срок действия анонимного пользователя истек», что через некоторое время я понял, потому что для ключа не была включена область календаря, доступная только для чтения.

Пытаясь включить область действия, мне сказали, что мне нужно проверить свое приложение в Google, что может занять несколько недель и требует, чтобы я написал условия обслуживания и политику конфиденциальности для своего приложения. Это кажется немного ненужным, так как это будет только чтение событий из календаря одного человека, и он уже предоставил мне разрешение и доступ.

Следующей моей мыслью было сделать календари общедоступными и использовать статический ключ API, но календарь синхронизируется из службы бронирования под названием Peak Pro, которая заполняет описания календаря именами, адресами электронной почты и номерами телефонов клиентов, посещающих мероприятия. Я не могу разоблачать это публично.

Затем меня заинтересовал CalDAV API, но, похоже, он имеет те же требования в отношении проверки экрана согласия OAuth2 с помощью Google.

Обычно я бы не стал задавать такой простой вопрос, но я не смог найти решения через 3 недели. Предоставляет ли Google еще один вариант, который мне не хватает?


person 735Tesla    schedule 11.06.2019    source источник


Ответы (1)


К сожалению, простой ответ - нет, Google не предоставляет другого варианта для этого.

По соображениям безопасности при предоставлении услуги пользователям за пределами вашего домена с использованием API G-Suite для этого процесса требуется проверка приложения Google. Это сделано исключительно из соображений безопасности, поскольку личная информация может быть прочитана и передана приложением, и без этого ручного кода проверки может быть выполнен сверх того, что заявляет разработчик приложения.

Однако в качестве обходного пути вы можете использовать встроенный iframe, предусмотренный в настройках календаря, для импорта календаря на веб-страницу после того, как сведения о событиях будут закрыты. Ваш клиент может предоставить вам эту ссылку, выполнив следующие действия:

  1. Go to calendar.google.com
  2. В правом верхнем углу страницы выберите ⚙ -> Настройки.
  3. Выберите Календарь, который вы хотите отобразить на левой панели страницы.
  4. В разделе «Права доступа» нажмите «Сделать общедоступным» и измените раскрывающееся меню, выбрав «Просмотр только свободного / занятого (скрыть подробности)» [1].
  5. В разделе «Интегрировать календарь» есть ссылки на общедоступный URL-адрес календаря и код для встраивания iframe.

'Просмотреть только информацию о свободном и занятом времени (скрыть подробности)' selected

Если выбран параметр «Просмотр только свободного / занятого времени (скрыть подробности)», единственной информацией, которая будет доступна для просмотра анонимным / общедоступным пользователям, является время события и владелец календаря. Вся остальная информация о событии в календаре скрыта, если человек, просматривающий страницу, не приглашен на мероприятие и не вошел в систему [2].

Информация о мероприятии в календаре остается закрытой, если пользователь не приглашен

person Rafa Guillermo    schedule 14.06.2019