Добрый день, уважаемые хабрачитатели! О платформе JAICP было не так много статей на хабре. К сожалению, не всегда официальная документация может помочь в решении определенной проблемы. Я решил написать серию статей-руководств по работе с JAICP. В первой статье я расскажу о настройке Google SMTP сервера для отправки email сообщений из чат ботов на платформе JAICP. Кому интересно, прошу под кат.
JAICP - это платформа для разработки виртуальных ассистентов (голосовых и чат ботов) на языках программирования Javascript или Kotlin от компании Just AI. Платформа предоставляет удобную встроенную среду разработки, встроенный NLU-сервис CAILA для ускорения обучения чат-ботов, а также детальную статистику и аналитику для создаваемых чат ботов. На сайте JAICP есть серия практических туториалов по созданию чат ботов.
В официальной документации JAICP по отправке email сообщений дается только краткая информация по конфигурации SMTP сервера. Здесь я расскажу о настройке Google SMTP сервера в случае двухфакторной аутентификации, поскольку она является немного сложнее.
Настройка аккаунта Google как SMTP сервера
Для начала нужно получить пароль для приложения. Перейдем по ссылке в Google аккаунт. В левом меню выберем Безопасность (Security), затем найдем секцию Signing in to Google и App Passwords. В поле Select app выберем Mail и в Select device выберем Other. Затем нажмем кнопку Generate.
Скопируем пароль. Он нам понадобится на следующем шаге.
Следующий шаг нужен в случае двухфакторной аутентификации. Нужно перейти по этой ссылке. Там должно появиться разрешение на предоставление доступа к аккаунту Google:
На все вопросы нажимаем подтверждение.
Если у вас нет двухфакторной аутентификации, то скорее всего этот шаг можно опустить.
Настройка SMTP сервера и отправка сообщения на платформе JAICP
Нам нужно добавить настройки SMTP сервера в приложении на JAICP. Добавим такие строки в chatbot.yaml:
injector:
smtp:
host: 'smtp.gmail.com'
port: 465
from: '<your_email>@gmail.com'
user: '<your_email>@gmail.com'
password: '<password>'
Здесь в поле your_email указываем имя пользователя в аккаунте Google, в поле password вставим наш скопированный пароль.
Самое время отправить какое-нибудь тестовое сообщение. Добавим такой тестовый стейт в main.sc:
state: TestEmail
q: * testemail *
script:
var result = $mail.sendMessage("<target_email_address>", "Test", "Message from my bot");
log("TestEmail");
log(result["status"]);
a: Сообщение отправлено.
В этом коде мы используем встроенный сервис $mail. Здесь подробно описаны параметры методов этого сервиса. В методе sendMessage первым параметром (target_email_address) передается email адрес адресата, вторым параметром - тема сообщения, а третьим - текст сообщения.
Теперь нужно добавить внешний канал для тестирования отправки, например, чатвиджет, поскольку в тестовом виджете вы будете натыкаться на ошибку о превышении лимита CPU.
На этом все. Удачи в разработке чат ботов на платформе JAICP.