Интеграция с Google Docs (Google Sheets)

Последние изменения: 29.01.2021

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

Далее описан процесс подключения к Sherlock Platform интеграции с Google Sheets.

Шаг 1. Создание проекта Google для работы с API

Первоначально, для работы с api google, необходимо создать проект в console.developers.google.com (рис. 1).

_________________Google.png

Рисунок 1. Создание проекта Google

Для проекта нужно ввести имя (произвольное) и перейти в созданный проект. Затем необходимо подключить нужные api (в нашем примере - Google Sheets). Для этого необходимо перейти в Библиотеку и найти нужное api:

__________API_Google_Sheets.png

Далее перейти в найденный api и нажать Включить (Enable). После включения api необходимо создать учетные данные:

________________________Google.png

Далее необходимо ввести требуемую информацию: выбрать api из списка, выбрать источник вызова api и тип запрашиваемых данных:

__________________________Google_2.png

На следующем экране необходимо ввести название идентификатора клиента (можно оставить стандартное) и Разрешенные URI перенаправления (redirect uri):

__________________________Google_3.png

И затем нажать кнопку «Создать идентификатор клиента OAuth». На следующем экране необходимо ввести свой адрес электронной почты (желательно google mail) и название продукта:

__________________________Google_4.png

И нажать кнопку Продолжить. После этого будет создан Client ID. Нажать кнопку Готово.

__________________________Google_5.png

В итоге будет создан идентификатор клиента и можно скачать JSON файл с информацией (эта информация понадобится для получения и обновления токена).

Шаг 2. Получение токена авторизации

Для того, чтобы получить токен, сначала необходимо получить код авторизации (code) с помощью следующего GET запроса:

https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=https://web.telegram.org&client_id=89699275998-uc1hne************6anrbdm7g52t2u405up.apps.googleusercontent.com&response_type=code&scope=https://www.googleapis.com/auth/spreadsheets&access_type=offline&include_granted_scopes=true&state=state_parameter_passthrough_value, где

  • scope — сервис, к которому мы получаем доступ. Для контактов это www.google.com/m8/feeds. Список адресов разных сервисов находится по ссылке https://developers.google.com/identity/protocols/googlescopes;
  • access_type — тип доступа. Если вам нужно будет обновлять токены без участия пользователя, обязательно используйте значение offline. Также возможно значение online, но при его выборе необходимо будет каждый раз запрашивать разрешение у пользователя в браузере;
  • redirect_uri и client_id — данные, которые указаны в файле проекта, который был скачан на первом этапе;

Параметры этого запроса находятся в файле JSON, который был создан по итогу создания идентификатора клиента. Данный JSON файл имеет следующую структуру:

__________JSON____________________Google.png

Данный запрос можно выполнить прямо в браузере в адресной строке. После его выполнения произойдет переход на адрес, указанный в redirect_uri. Также, после редиректа, в адресной строке появится значение code, которое нужно сохранить.

 

Далее необходимо выполнить POST запрос на получение access token и refresh token. Refresh token понадобится для того, чтобы обновлять токен.

Адрес запроса: https://www.googleapis.com/oauth2/v4/token

Headers: Content-Type : application/x-www-form-urlencoded

Тело запроса:

code=4/ngBzpCV12YOMi_72bHv*****************SHIC_vtowvbiwBNWhOfZxdqLmkdLVvVKvQdBzr5cMNYIjlSTnnUlw7WlI&client_id=89699275998-uc1hne4n257sp6anrbdm7g52t2u405up.apps.googleusercontent.com&client_secret=aW***********d2-BX6X4mrOfJxT&redirect_uri=https://example.org&grant_type=authorization_code

Где code – полученные код из предыдущего шага, client_secret и redirect_uri – значения из json файла.

Пример вызова в Postman:

Postman_request.png

После выполнения запроса получим JSON c access token и refresh token:

______Google___refresh_token.png

Шаг 3. Подключение Google Sheets в Sherlock

Для использования этого api в Sherlock platform необходимо перейти в Настройки -> Справочники -> Внешние сервера.

___________________________Sherlock.png

И далее добавить новый сервер. Ввести заголовок, тип (Url), URL сервера, тип авторизации Bearer Authorization (т.к. google api использует этот тип авторизации).

______________________________Google___Sherlock.png

В поле Логин указать переменную #GoogleToken# в которую будет сохраняться access token. Поле Пароль оставить пустым. Нажать Сохранить.

Далее надо в сценарии авторизации бота указать необходимые параметры команд для обновления токена, включая client_id, client_secret и Refresh token.

 

Помогла ли вам статья?