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

Теперь необходимо подтвердить, что домен который вы добавили принадлежит вам: Способы подтверждения владения доменом.
После успешного подтверждения вы должны видеть примерно следующее:

Настройка модуля завершена, теперь можно добавить шаг HTTP-запрос в нужную вам цепочку.
Добавление шага
Создадим цепочку «Добавить заказ».

Добавим в неё шаг «HTTP-запрос»:

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

В случае если что-то пошло не так, включите «Режим отладки» в разделе «Настройки»: бот будет подробно показывать ход обработки запроса.
Пример кода сервера, принимающего запросы из этой статьи
Этот код приведён для примера и полноты статьи. В реальности вы будете взаимодействовать либо уже с существующим API, либо его реализуют ваши разработчики.
# language: Python 3.6+
# deps: pip install aiohttp
from aiohttp import web
async def add_entry(req: web.Request):
req_data = await req.post()
name = req_data.get('name', 'аноним')
order = req_data.get('order', '')
print(f'Новый заказ от пользователя {name}')
return web.Response(text=f'Привет, {name}, ваш заказ: {order}!')
app = web.Application()
app.add_routes([web.post('/add_entry', add_entry)])
if __name__ == '__main__':
web.run_app(app, port=8080, host='0.0.0.0')
Last updated
Was this helpful?