Разработка под Slack: отправляем сообщение в чат

3 min read

В ходе разработки проекта @codex_bot, который интегрирует различные сервисы в мессенджеры, мы разобрались с созданием приложений для Slack. В этой статье расскажем о том, как отправлять сообщения в чат с помощью POST-запросов.

Для начала, зарегистрируйтесь на slack.com, если у вас еще нет аккаунта.

Создаем приложение

Открываем сайт Slack API и переходим во вкладку Your Apps. Здесь будут выводиться приложения, к которым у вас есть доступ. Для создания нового, нажмите «Create New App».

После заполнения формы вы попадете на страницу настройки бота.

Настраиваем приложение

Доступные настройки

Открываем вкладку «Basic Information» бокового меню. В этой вкладке три основных блока: «Add features and functionality», «Install your app to your team», «Manage Distribution». 

Коротко о разделе Add features and functionality:

В разделе «Install your app to your team» настраивается авторизация приложения через протокол OAuth. Раздел «Manage Distribution» используется для того, чтобы ваше приложение попало в общий каталог, где его сможет найти любой пользователь.

В рамках этой статьи мы рассмотрим раздел «Incoming Webhooks». Этого достаточно для создания простого бота, который будет присылать сообщения в чат при запросе Webhook.

Webhook — адрес, на который вы сможете слать запросы для отправки сообщений в чат от лица приложения.

Отправляем «Hello, World!» в канал 

Давайте попробуем отправить сообщение в канал. Откройте вкладку «Incoming Webhooks», нажмите «Add New Webhook to Team» и выберите канал, в который вы будете отправлять сообщения. 

Созданный вебхук появится в поле Webhook URL:

Для отправки сообщения, пошлите POST-запрос на этот адрес. Пример кода отправки будет сгенерирован в поле «Sample curl request to post to a channel».

curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/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

Могу вас поздравить, только что вы создали приложение для Slack!

В следующей статье добавим приложению необходимые права, настроим получение данных из каналов, авторизацию, получение токена через OAuth и обработку слэш-комманд.