Поиск по сайту:

Как автоматизировать ваши сообщения Slack


Если вы постоянно отправляете повторяющиеся сообщения в Slack и хотите автоматизировать процесс, вы можете сделать это из своей основной учетной записи Slack, не добавляя нового пользователя-бота. Это позволит сценариям и программам отправлять сообщения от вашего имени.

Как это работает?

Когда вы создаете новое приложение Slack, их API допускает два типа возможностей. Первый тип добавляет пользователя-бота, например Slackbot, с которым вы можете взаимодействовать отдельно от своей учетной записи. Это часто используется для создания интеграций Slack с другими сервисами, такими как Trello или Jira, которые вы можете добавить в свое рабочее пространство.

Другой тип приложения Slack — это приложение, с помощью которого пользователи могут пройти аутентификацию, чтобы предоставить доступ к своей учетной записи. Одним из таких разрешений является chat.write, которое дает приложению Slack разрешение отправлять сообщения от вашего имени. Если вы даете разрешение своему собственному приложению, вам по сути предоставляется токен OAuth, который вы можете использовать для доступа к Slack API и отправки POST-запросов на новые сообщения из вашей собственной учетной записи.

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

Если вы хотите настроить пользователя-бота, вы можете вместо этого прочитать наше руководство по этому поводу.

Настройка приложения Slack

Для начала перейдите на портал разработчиков Slack и создайте новое приложение. В конечном итоге вы можете активировать общедоступное распространение и отправить его в Slack App Directory, чтобы приложение можно было установить бесплатно, но пока просто выберите рабочее пространство, в котором вы планируете автоматизировать сообщения, в качестве рабочего пространства для разработки.

Прежде чем запросить добавление приложения в рабочую область, необходимо определить его области. В разделе «OAuth и разрешения» на боковой панели прокрутите вниз до панели «Области» и добавьте новую область в разделе «Области токенов пользователя». В отличие от общих разрешений, они относятся к вашей личной учетной записи.

Добавьте chat.write в список. Если вам нужно что-то еще, добавьте это и здесь, но chat.write предоставит ему простое разрешение отправлять сообщения от вашего имени, как только вы разрешите это приложению.

После добавления области вы можете запросить установку приложения на свое рабочее место на вкладке «Установить приложение».

Если вам нужно разрешение от администраторов вашего рабочего пространства, Slack отправит им сообщение, информирующее их о запросе. Если нет, вам просто нужно авторизовать его самостоятельно.

После одобрения вы

Отправка сообщений

Конечная точка API для отправки сообщений:

http://slack.com/api/chat.postMessage

Это требует нескольких вариантов, но вам просто нужно:

  • токен, который передает созданный ранее токен авторизации,
  • канал, который указывает боту, где размещать сообщения,
  • и text, куда вы передаете то, что пишете.

Если вы упоминаете пользователей, вам также нужно установить для параметра parse значение full , чтобы он отображался правильно.

Чтобы получить идентификатор канала, щелкните правой кнопкой мыши канал в Slack и нажмите «Копировать ссылку». Это скопирует полный веб-URL — идентификатор канала является последней его частью.

В целом конечный URL будет выглядеть примерно так:

http://slack.com/api/chat.postMessage?token=xxxxxxxxxx&channel=xxxxxxxxx&parse=full&text=Hello

Здесь вы можете отправить POST-запрос, используя любые методы HTTP-запроса на выбранном вами языке сценариев. Например, это можно легко сделать в JS с помощью axios:

const axios = require('axios');

const text = "Hello, Slack!";

axios.post('http://slack.com/api/chat.postMessage?token=xxxxx&channel=xxxxx&parse=full&text=' + text)
                .then((res) => console.log(res);)

Если вы хотите отправлять более сложные сообщения, вы можете заглянуть в Slack Block Kit Builder, который позволяет создавать сообщения с расширенным форматированием с использованием JSON.