В ходе разработки проекта @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:
- Incoming Webhooks — позволяет настроить отправку сообщений в чат через специальный адрес
- Interactive Messages — используется для добавления кнопок в сообщениях
- Slash Commands — в этом разделе можно задать адреса для обработки специальных команд вида «/command»
- Event Subscriptions — позволяет подписать ваше приложение на события. Например, «пользователь покинул чат» или «ответ/реакция на сообщение»
- Bots — раздел для создания бота, который будет получать уведомления о событиях, активированных в «Event Subscriptions»
- Permissions — в этом разделе задается список привилегий, которые будет запрашивать приложение при установке (добавлении в команду).
В разделе «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 и обработку слэш-комманд.