Ошибка «Указана неверная устаревшая область» при попытке доступа к API Google из веб-приложения? - PullRequest
1 голос
/ 02 июля 2019

Вот что я пытаюсь сделать:

  • Удаленное выполнение функции скрипта Google Apps из онлайн-службы автоматизации (Zoho Flow, аналогично по назначению Zapier.) *
  • Эта функция, которую я удаленно выполняю, заключается в добавлении меток gmail всем сотрудникам организации.

Для этого я сделал следующее:

  1. Создана учетная запись службы с делегированием по всему домену в том же проекте GCP, связанном с функцией добавления меток gmail.

  2. Использовал библиотеку OAuth2 для скрипта Google Apps, чтобы сохранить авторизацию JWT для этой учетной записи службы в моем скрипте.

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

  4. Развернул этот сценарий как исполняемый файл API для включения удаленного выполнения

  5. Созданы авторикены, авторизованные с почтовой областью для API скриптов приложений (https://mail.google.com/),, а также дополнительная область, требуемая библиотекой OAuth2 в моем скрипте. Это делается в площадка для разработчиков Google , использующая учетные данные идентификатора клиента OAuth2.0, которые авторизованы как часть того же проекта GCP.

  6. Успешное выполнение функции удаленно с помощью API скриптов Google Apps с Почтальоном

Теперь, чтобы фактически сделать эту функциональность официальной, мне теперь нужно заменить почтальона и консоль разработчика Google настоящим клиентом, которым является платформа Zoho Flow для API-соединений и автоматизации процессов.

Для переключения я сделал следующее:

  1. Добавлен авторизованный URl перенаправления для клиента (Zoho Flow) под теми же учетными данными, которые используются для Google Developer Playground:

enter image description here

  1. Использовал учетные данные, найденные в JSON-представлении этих учетных данных **, для создания так называемого «соединения» в этом программном обеспечении, которое по сути представляет собой простое в использовании соединение OAuth2.0 с приятным внешним интерфейсом это может быть использовано для доступа к данным API (это часть, где я создаю это соединение): enter image description here

  2. Введена та же область действия для этого подключения, которая была авторизована в google Developer Playground , а также эта дополнительная область (https://www.googleapis.com/auth/script.external_request), что библиотека OAuth2.0 для Служб Google Скрипт использует: enter image description here

И вот, я получаю сообщение об ошибке ниже, когда пытаюсь получить доступ к данным API Google из веб-приложения, и области, которые, как говорят, вызывают ошибку, - это все области действия , за исключением для почтовой области: https://mail.google.com/. Я провел дополнительное тестирование, чтобы убедиться, что любая другая область, являющаяся частью API сценария приложений Google, также создает эту ошибку, а не только эту внешнюю область для библиотеки OAuth2.

enter image description here

Служба поддержки сказала, что, скорее всего, это проблема с моими полномочиями доступа; моя логическая линия для этого правильна? Если это так, то проблема с их программным обеспечением заключается в том, что я буду продолжать их.

1 Ответ

0 голосов
/ 02 июля 2019

Некоторое дополнительное тестирование было проведено на программном обеспечении (Zoho Flow), чтобы подтвердить, является ли это программной ошибкой или нет: я не уверен, является ли процесс, определенный в моем ответе, наилучшей практикой, или даже на 100% правильным (другие пользователи могут говорить с ним, но я подтвердил, что ошибка, которую я вижу, , вероятно, ошибка с клиентом.

И вот почему:

При авторизации для нескольких областей я получаю сообщение об ошибке в конце моего вопроса: enter image description here

При изменении этого соединения для использования только одной из моих областей действия, например, так:

enter image description here

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

...