Salebot.pro
Search
⌃K

Google

Подготовка сервисного аккаунта

  1. 1.
    Создаем проект
2. Придумываем название. Не указываем организацию. Нажимаем Create
3. Проверяем права доступа. Должен быть уровень доступа “owner”
4. Переходим во вкладку Service Accounts и создаем сервисный аккаунт Create Service Account.
Указываем имя в первом пункте:
Выставляем права Owner во втором и пропускаем третий. Нажимаем Done.
Сохраните имя полученного аккаунта, оно нам понадобится при предоставлении доступа к файлу (документу, таблице, форме... и тд)
5. После создания аккаунта переходим в его настройки и подготавливаем ключ. Выбираем Manage keys.
Создаем новый ключ. Выбираем параметр JSON в качестве сохранения.
Сохраните сервисный ключ в любом удобном месте - это “Ключ доступа”, с помощью которого мы будем давать доступ к нашим Google-документам.
Храните файл с ключом в надежном месте, потому что этот ключ невозможно восстановить в случае утери.
6. Далее переходим к подключению API-сервисов.

Подключение API-сервисов. Google Drive API

Для этого переходим в главное меню:
Выбираем “APIs & Services”, далее “Enabled Api’s and services”. И нажимаем enable Apis and services.
Включаем нужные нам сервисы APi - Google Drive Api и Google Docs API(не забудьте развернуть список)
Подключаем. Если на этом этапе картинка будет не такая, как на скрине, то обновляем страницу “F5”. Жмём “Enable”
Подключилось.
Далее подключите сервис в соответствии со своей надобностью: Для работы через сервисный аккаунт с таблицей - Google Sheets API, с календарем - Google Calendar API и т.д.

Подключение API-сервисов. Google Sheets API

Только теперь выбираем Google-Sheets API
Подключилось.
На этом настройки аккаунта закончены.

Предоставление доступа к документу через сервисный аккаунт

  1. 1.
    Перейдите в Настройки доступа
2. Откройте доступ к файлу (документу, таблице, форме и тд) с правами редактора. Для этого укажите имя сервисного аккаунта, который мы сохраняли на 4-ом шаге создания сервисного аккаунта. Снимите выбор "Уведомление пользователей" и укажите права Редактор. Нажимаем Отправить
Проверяем:
В дальнейшей работе вам потребуется ID файла, который мы копируем из адресной строки

Предоставление доступа к таблице через сервисный аккаунт

Аналогично процедуре настройки доступа к документу через сервисный аккаунт
Переходим в Google-таблицу. Нажимаем “Настройки доступа” в правом верхнем углу
Появляется окно для ввода названия сервисного аккаунта, который мы копировали выше.
Вставляем название. Убираем “галочку” Уведомления, и проверяем, чтобы было выбрано “Редактор”
Нажимаем “Открыть доступ” Проверяем на всякий случай
Теперь копируем ID таблицы. Оно нам пригодится сейчас.

Предоставление доступа к файлу (документу, таблице, форме и тд) для бота из проекта Salebot (подключение сервисного аккаунта для работы бота)

  1. 1.
    Перейдите в свой проект и создайте серый блок - "Не состояние"
  2. 2.
    В настройках вложений прикрепите файл сервисного ключа, полученный при создании сервисного аккаунта. Сохраните блок.
Откройте вложенный документ, для этого щелкните на иконке документа. В открывшемся окне заберите ссылку из адресной строки:
3. Переходим в настройки проекта и добавляем переменную docs_json_keys в константы. В качестве значения укажите скопированную из адресной строки ссылку в формате [“ссылка”] - в нашем случае значение будет следующим: ["https://files.zmservice.ru/uploads/message/file/48/dynamic-mystery-367310-0377023 d3e26.json"]
Нажимаем “Готово”

Как работать через свой аккаунт

По умолчанию конструктор работает с собственными сервисными аккаунтами для доступа к вашим таблицам. Поэтому вам необходимо выдавать доступ на редактирование по ссылке. Чтобы обеспечить достаточный уровень безопасности, вы можете передавать json с аутентификационными данными.
У гугл таблиц есть лимиты на количество запросов в единицу времени. Чтобы не зависеть от лимитов, вы можете использовать свой аккаунт.
Каждая функция по работе с таблицами принимает: creds_path - необязательный параметр путь или url к вашему файлу содержащему сервисные данные для авторизации в таблице.
Самый простой путь получения такого url - загрузить файл с данными в конструктор. Для этого нужно создать блок первостепенной проверки условия, в условие которого вписать любой набор знаков, а во вложения - положить файл с сервисными данными (как его получить - читайте ниже), включив вывод ссылкой. После этого вам будет достаточно в тестовом чате вызвать данный блок - он в ответ пришлет вам нужную ссылку. Чтобы файл даже случайно не оказался у посторонних - после получения ссылки измените тип блока на состояние диалога.
Останется только скопировать ссылку из тестового чата и указать ее в параметрах запроса передавая полученный URL в параметре creds_path (подробнее - читайте ниже).
Например: {"id": "id таблицы", "client_type": "#{client_type}", "show": "количество результатов для вывода", "creds_path": "УРЛ_вашего_json_файла_с_ключом"}

Подготовка сервисного аккаунта

Создаём проект
Придумываем название для проекта
Перезагружаем страницу. Нажимаем “F5”
Проверяем права доступа. Должно быть Полное -”Owner”
Теперь заходим в “Настройки”
Заходим в “Сервисные аккаунты”
и создаём Сервисный аккаунт
.
Придумываем аккаунту любое название, и жмём “продолжить”
Далее выбираем “Роль”. Она должна быть “Owner”, т.е. “Полная” - Владелец.
Нажимаем “Продолжить”, и далее “DONE”, т.е. “Закончить”
Видим созданный аккаунт
Копируем наш адрес сервисного аккаунта. Обязательно!!! сохраните себе его название. Оно понадобится нам в дальнейшем.
и теперь нам надо создать ключ безопасности. Жмём на 3 точки и выбираем “Manage keys”
Переходим в “Keys” “Добавить новый ключ”
Создаётся закрытый ключ для "SaleBot_1" Скачиваем файл, содержащий закрытый ключ.
Скачиваем ключ куда удобно. Главное запомнить куда. Это “Ключ доступа”, с помощью которого мы будем давать доступ к нашим Google-таблицам Храните файл с ключом в надежном месте, потому что этот ключ невозможно восстановить в случае утери.
Теперь надо добавить наше API-интеграции. Для этого заходим сюда.
Выбираем “APIs & Services”, далее “Dashboard”.
Это “Доска”, на которой мы сможем выбрать подключаемые сервисы Мы подключим два. Это Google-таблицы, и Google-драйв. Нажимаем “Подключить API”
Можно выбрать в Поиске, а можно найти нужный сервис, прокрутив страницу ниже
Подключаем. Если на этом этапе картинка будет не такая, как на скрине, то обновляем страницу “F5”. Жмём “Enable”
Подключилось.
Теперь повторяем тоже самое для Google-таблиц.
Только теперь выбираем Google-Sheets API
Подключилось.
На этом настройки аккаунта закончены.
Теперь переходим в Google-таблицу.
Нажимаем “Настройки доступа” в правом верхнем углу
Появляется окно для ввода названия сервисного аккаунта, который мы копировали выше.
Вставляем название. Убираем “галочку” Уведомления, и проверяем, чтобы было выбрано “Редактор”
Нажимаем “Открыть доступ” Проверяем на всякий случай
Теперь копируем ID таблицы. Оно нам пригодится сейчас.
Переходим в конструктор SaleBot. В свой проект.
Создаём блок с первостепенной проверкой условия. В условии пишем “ключ”. В настройках вложений выбираем файл ключа, который мы сохраняли выше.
Сохраняем. Переходим в тестирование бота. набираем ключевое слово, которое записывали в Условии (в нашем случае “ключ”) Получаем ссылку
Копируем ссылку.
Теперь нам нужно сделать запрос в таблицу. Создаём ещё один бок с первостепенной проверкой условия, который запускается по команде “старт”. В тексте сообщения выводим переменную #{custom_answer}
Сделаем запрос “mapping”, т.е. построчно запишем некий текст.
Формируем запрос
Выбираем Post-json А в поле JSON параметры записываем параметры запроса: {"id": "ид таблицы", "mapping": { "a": "Проверка" }, "list_name": "Лист1", "creds_path": "Путь к вашему файлу с данными для авторизации" }
В “creds_path” прописываем ссылку, которую мы получили при тестировании, когда набирали стартовую команду “ключ”
И вставляем ID-таблицы
И вставляем это в JSON параметры. В url запроса прописываем функцию из документации для функции mapping
Сохраняем. Тестируем. Набираем команду “старт”
Видим, что всё работает. Наш тестовый текст “Проверка” записался во вторую строку. Проверяем таблицу.
Всё нормально записалось. на этом Настройка аккаунта, и тестирование закончено.