SmartBot
Search…
Пример использования

Постановка задачи

Предположим у вас есть свой сайт/CRM/интернет-магазин/сервис по адресу, например, https://test.smartbot-vk.ru, и вы хотите отправлять на него запросы с информацией о заказах ваших клиентов.
Предположим, что у этого сайта есть страница /add_entry, и отправка формы на этот адрес приводит к сохранению информации о заказе пользователя.
Для вашего удобства в конце этой статьи приведён пример кода такой страницы.

Реализация

Настройка модуля

Для начала необходимо подключить и настроить модуль «HTTP-запросы».
Включим модуль и добавим наш домен.
Домен — это адрес вашего сайта без префикса https:// и без адреса конкретной страницы.
Теперь необходимо подтвердить, что домен который вы добавили принадлежит вам: Способы подтверждения владения доменом.
После успешного подтверждения вы должны видеть примерно следующее:
Настройка модуля завершена, теперь можно добавить шаг HTTP-запрос в нужную вам цепочку.

Добавление шага

Создадим цепочку «Добавить заказ».
Добавим в неё шаг «HTTP-запрос»:
Нужно выбрать тип запроса: GET или POST и указать полный URL-адрес страницы, куда нужно отправить запрос.
Так как мы хотим передать какие-то данные в запросе, указываем их на вкладке «Тело запроса». Для примера мы будет передавать 2 параметра: name — имя заказчика, и order — содержимое заказа. Вы можете отправлять любые данные с любой удобной вам структурой. Кроме форм можно также передавать JSON и простой текст, а также указывать заголовки, например, для авторизации. Везде можно использовать переменные и SQ: в URL, в именах и значениях параметров и заголовков.
Результат выполнения запроса по умолчанию сохраняется во временных переменных: %body%, %status% и %eheaders%.

Проверяем интеграцию

В случае если что-то пошло не так, включите «Режим отладки» в разделе «Настройки»: бот будет подробно показывать ход обработки запроса.

Пример кода сервера, принимающего запросы из этой статьи

Этот код приведён для примера и полноты статьи. В реальности вы будете взаимодействовать либо уже с существующим API, либо его реализуют ваши разработчики.
1
# language: Python 3.6+
2
# deps: pip install aiohttp
3
4
from aiohttp import web
5
6
async def add_entry(req: web.Request):
7
req_data = await req.post()
8
name = req_data.get('name', 'аноним')
9
order = req_data.get('order', '')
10
print(f'Новый заказ от пользователя {name}')
11
return web.Response(text=f'Привет, {name}, ваш заказ: {order}!')
12
13
app = web.Application()
14
app.add_routes([web.post('/add_entry', add_entry)])
15
16
if __name__ == '__main__':
17
web.run_app(app, port=8080, host='0.0.0.0')
Copied!