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

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

Предположим у вас есть свой сайт/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, либо его реализуют ваши разработчики.

# 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