Интеграция с Dialogflow
Для того, чтобы бот смог использовать базу знаний вашего проекта, необходимо произвести интеграцию сервиса Dialogflow с платформой Metabot24. Это делается с помощью уникального ключа, связывающего вашего бота и агента DF.
Получение уникального ключа
Для начала следует зайти в настройки созданного вами проекта при помощи нажатия на иконку настроек соответствующего Агента в левом меню DF.
Если вы еще не создавали свой проект на сервисе, можете узнать как это сделать в разделе Начало работы с Dialogflow.
В настройках Агента нажмите на ссылку в поле Project ID. Данная ссылка откроет перед вами окно Google Cloud - консоль настроек.
Если того потребует сервис – пройдите регистрацию.
Управлять настройками консоли может только тот Google аккаунт, который является создателем агента в Dialogflow.
В некоторых браузерах привязывается верхнеуровнево Google аккаунт в настройках для синхронизации. Если аккаунт в Dialogflow отличается от аккаунта в браузере, то перед входом в консоль необходимо сменить настройки браузера или открыть консоль в другом браузере без аккаунта.
В новом аккаунте в появившемся окне выбора страны выберите ближайшую страну СНГ - Казахстан. Это никак не повлияет на работу интеграции.
Далее откройте боковое меню нажатием на иконку в левом верхнем углу. В блоке More Products перейдите в раздел API & Services подраздел Credentials.
В открывшемся окне следует создать учетные данные. Для этого нажмите на кнопку Create Credentials и выберите Help me choose.
Далее в открывшемся окне следует выполнить следующие действия:
- В блоке Credential Type, необходимо указать какой API будет использоваться, выбрав Dialogflow API.
- Указать параметры: Application data и No, I'm using them.
- Нажать на кнопку NEXT.
- В блоке Service account details указать Название сервисного аккаунта латинскими буквами и нажать на кнопку Create and Continue.
- В блоке Grant this service account access to project указать роль в поле Role – Project – Owner.
- Нажать на кнопку Continue.
- В следующем диалоговом окне нажать кнопку DONE.
Теперь в разделе Service Accounts появился созданный нами аккаунт.
Для создания нового авторизационного ключа нажмите на иконку редактирования аккаунта.
В открывшемся окне перейдите в раздел Keys и выберете в выпадающем списке Add key пункт Create new key.
Выберите тип ключа JSON и создайте его кнопкой Create.
Браузер автоматически скачает файл с закрытым ключом, предложив его сохранить на диск.
Рекомендуем сохранить файл для дальнейшего копирования ключа на платформу.
В информационном сообщении вы получите уведомление об успешном создании и скачивании закрытого ключа.
Теперь файл с ключом можно открыть любым текстовым редактором и скопировать весь текст в буфер обмена.
Передача уникального ключа боту
Выберите бот на платформе Metabot24, который хотите связать с DF.
В разделе Настройки бота выберите пункт Интеграции. Затем нажмите на кнопку Новая привязка чтобы создать новую интеграцию.
В боте может быть создано больше 1 одной интеграции с агентами Dialoglow. Для работы с обоими одновременно необходимо указать у интеграции Код для обращений в боте.
Последним шагом заполните следующие параметры в открывшемся диалоговом окне:
- Интеграционная система - выберите из списка Dialogflow;
- Название - придумайте название агенту, можно указать такой же, как в Dialogflow;
- Код - придумайте код - дополнительный уникальный идентификатор. Используется для поиска интеграции, например в JS функциях.
- Авторизационный ключ (json) - вставьте полностью текст закрытого ключа, полученного вами ранее в Google Cloud.
Нажмите кнопку Создать.
После этого интеграция успешно создана и бот готов к обучению через Dialogflow.
JS методы для работы с интеграциями NLP
К NLP интеграциям можно обращаться из JS следующими методами:
| Название метода | Метод |
| Получить id интеграции бота по коду | bot.getIntegrationIdByCode(?string $integrationCode): int|null |
| Получить id включенной интеграции бота по коду | bot.getEnabledIntegrationIdByCode(?string $integrationCode): int|null |
| Проверить активность интеграции по id | bot.isEnabledIntegrationById(?int $integrationId): bool |
| Проверить активность интеграции по коду | bot.isEnabledIntegrationByCode(?string $integrationCode): bool |
| Присвоить интеграцию лиду по коду | lead.setActiveNlpIntegrationByCode(?string $integrationCode): bool |
Каждый из методов подробнее расписан ниже.
Получить id интеграции бота по коду
bot.getIntegrationIdByCode(?string $integrationCode)
Описание:
Находит id интеграции по ее коду.
Атрибуты:
| Имя | Тип | Описание |
| integrationCode | string | Код интеграции |
Возвращает:
int - id интеграции, если она принадлежит боту
или
null - если интеграция не найдена.
Получить id включенной интеграции бота по коду
bot.getEnabledIntegrationIdByCode(?string $integrationCode)
Описание:
Находит id интеграции по ее коду, если интеграция активна.
Атрибуты:
| Имя | Тип | Описание |
| integrationCode | string | Код интеграции |
Возвращает:
int - id интеграции, если она принадлежит боту и активна
или
null - если интеграция не найдена или не активна.
Проверить активность интеграции по id
bot.isEnabledIntegrationById(?int $integrationId)
Описание:
Проверяет есть ли такая интеграция по id и включена ли она.
Атрибуты:
| Имя | Тип | Описание |
| integrationId | int | ID интеграции |
Возвращает:
bool - подтверждение активности интеграции.
Проверить активность интеграции по коду
bot.isEnabledIntegrationByCode(?string $integrationCode)
Описание:
Проверяет есть ли такая интеграция по коду и включена ли она.
Атрибуты:
| Имя | Тип | Описание |
| integrationId | int | ID интеграции |
Возвращает:
bool - подтверждение активности интеграции.
Присвоить интеграцию лиду по коду
lead.setActiveNlpIntegrationByCode(?string $integrationCode)
Описание:
Присваивает интеграцию лиду в соответствии с кодом интеграции.
Атрибуты:
| Имя | Тип | Описание |
| integrationCode | string | Код интеграции |
Возвращает:
bool - подтверждение присвоения интеграции.












