Как создать своего первого Slack-бота за 5 минут с помощью PHP

Автор: | 09.08.2026

Итак, вы хотите создать Slack-бота с использованием PHP? Вы попали по адресу. В этой статье мы шаг за шагом расскажем, как создать вашего первого Slack-бота на PHP всего за 5 минут. Время пошло, давайте начнем.

Прежде чем мы начнем писать код, нам нужно настроить нашего Slack-бота в вашей команде Slack. Перейдите по ссылке https://[вашакоманда].slack.com/apps/build/custom-integration и выберите «Bots».

Придумайте своему боту оригинальное имя. Или, если вам не хватает вдохновения, используйте что-то простое, например, «php_bot», и нажмите «Add Integration».

На следующей странице вам будет предоставлен API-токен, который нужно сохранить. Он нам скоро понадобится.

Наш бот будет использовать API реального времени (RTM) от Slack. Для работы с RTM на PHP мы воспользуемся удобной библиотекой slack-client от Стивена Коукли. Откройте терминал и создайте новую папку для нашего кода. Мы установим `slack-client` через Composer, но она зависит от нестабильных пакетов. Прежде чем устанавливать, создайте файл `composer.json`, указав минимальный уровень стабильности как «dev».

После этого можно установить библиотеку:

Теперь, когда зависимости установлены, создайте новый файл с именем `bots.php` в вашей любимой IDE. Первым шагом в написании кода нашего бота будет подключение к нему с использованием API-токена, который Slack выдал нам при создании бота:

Подключите вашего бота к команде Slack, запустив:

Вы подключили бота к вашей команде Slack! Пока это не очень интересно, так как мы еще не читаем и не отправляем сообщения. Добавьте в код колбэк, который позволит боту читать любые сообщения, поступающие в канал, где находится бот:

Запустите код снова, пригласите бота в любой канал или отправьте ему личное сообщение, и вы увидите все входящие сообщения:

Наш бот читает сообщения, но мы не можем назвать его ботом, пока он не начнет отвечать на них. Первая версия нашего бота будет «попугаем», который просто повторяет любое полученное сообщение. Мы реализуем это в только что написанном колбэке `message`:

Этот код ищет объект канала, группы или личного сообщения по идентификатору входящего сообщения и создает новое сообщение, которое отправляется обратно в беседу. Запустите код снова и попробуйте.

Мы только что создали самого надоедливого Slack-бота в мире! И сделали это за 5 минут. 🔥 🔥 🔥

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

Телефон звонит.

Экран мигает.

Ужас.

Кто мне звонит?

Пришло время обновить нашего бота, чтобы использовать API Twilio Lookup и позволить любому участнику вашей команды Slack быстро узнать, кто им звонит, избавив их от этого ужаса. Вам понадобится учетная запись Twilio для этой части. Если у вас ее еще нет, вы можете зарегистрироваться бесплатно.

Мы будем использовать вспомогательную библиотеку Twilio для PHP для взаимодействия с API Lookup. Установим ее с помощью Composer:

Наш бот сейчас повторяет каждое сообщение, поступающее в беседы, в которых он участвует, но мы хотим искать номер только тогда, когда кто-то явно просит об этом. Сообщим команде, что наш бот будет отвечать на любое сообщение, начинающееся с «!lookup»:

Теперь, когда мы обрабатываем только текст, начинающийся с !lookup, мы можем извлечь номер телефона из этого текста. Также проведем небольшую очистку в ответ на некоторые особенности Slack, связанные с созданием ссылок на номера телефонов:

Имея номер телефона под рукой, мы можем использовать библиотеку Twilio для поиска информации о звонящем и отправить ее обратно в канал.

Запустите бота и попробуйте: `!lookup 415-701-2311`. Ура!

Осталось выполнить еще две небольшие доработки. Что, если наш бот не сможет найти имя звонящего или кто-то передаст в команду не номер телефона? Первую проблему можно решить, добавив быструю проверку перед отправкой сообщения:

Чтобы отловить любые команды !lookup, которые могут не содержать номера телефона, добавим обработку ошибок вокруг запроса к API Lookup. Это также поможет отловить любые другие ошибки, которые могут возникнуть:

Боты. Боты. Боты.

Сюрприз! Вы пришли на эту статью, ожидая создать своего первого Slack-бота на PHP, а в итоге только что закончили второго. Запустите код и наслаждайтесь славой своих достижений.

Каким будет ваш третий бот? Напишите мне в Twitter и расскажите, как продвигается ваше путешествие в мир ботов. Не могу дождаться, чтобы увидеть, что вы создадите.