larakit / lk-telegrambot
[Larakit] telegrambot отправка уведомлений
Requires
This package is auto-updated.
Last update: 2024-10-16 00:06:47 UTC
README
- Отправьте сообщение @BotFather: "/newbot"
- Вас попросят ввести имя будущего бота, оно должно заканчиваться на слово bot. Причем вы можете указывать его имя как "NickNameBot", так и "nickname_bot"
- Если имя бота не занято, то получите сообщение с поздравлением о создании бота и в нем же будет токен вашего нового бота
- Отправьте сообщение @BotFather: "/setinline"
- Сейчас создайте домен для бота, как это требует TelegramAPI и выложите файл webhook.phpв корень этого домена. Не забудьте использовать протокол https.
- Проверьте доступность бота, пройдя по урл например, https://bot.site.ru/webhook.php Вы будете должны увидеть "OK"
- Исправьте константы настроек webhook.php, расположенные в начале файла
//hook-урл вашего бота
define('TELEGRAM_BOT_SERVER_URL', 'https://bot.site.ru/webhook.php');
//токен бота
define('TELEGRAM_BOT_SERVER_TOKEN', '221242699:AA******************');
//получатели через запятую, которым будет отправлена информация о добавлении в группу
define('TELEGRAM_BOT_SERVER_RECIPIENTS', '');
//включение режима отладки, когда все сообщения боту пишутся в лог
define('TELEGRAM_BOT_SERVER_DEBUG', true);
- Зарегистрируем вебхук, для этого перейдем в консоли в директорию где лежит файл "webhook.php" и выполним:
$ php webhook.php
После этого в TelegramAPI будет зарегистрирован адрес, записанный TELEGRAM_BOT_SERVER_URL и все уведомления будут присылаться именно туда 9. Добавьте бота в группу телеграм, в которую хотите присылать уведомления 10. Посмотрите файл 'https://bot.site.ru/data.txt', там вы обнаружите сообщение, отправленное боту. В нем вы увидите свое имя и идентификатор. Впишите его в получатели
define('TELEGRAM_BOT_SERVER_RECIPIENTS', '123456789');
И теперь каждый раз, добавляя своего бота в новую группу только вы будете видеть сообщение в личку что бот был добавлен в такую то группу и пример кода для отправки сообщений ботом в эту группу
Каналы
Варианта уведомлений два:
- если у вас уведомлений будет немного, то можно создать в телеграме всего одну группу и сыпать туда уведомлений с хэш-тегами
- если уведомлений много, то лучше развести по каналам, чтобы показывать их только участнкиам группы
Пример, есть следующие типы уведомлений
- ошибки (их должны видеть только программисты)
- уведомления (программисты и менеджер проекта)
- бронирование боулинга (Курган/Москва)
- бронирование праздников (Курган/Москва)
- бронирование билета в кино (Курган/Москва)
Мы может создать группы как по типу боулинг/кино/праздник, а можем и сделать единую группу в телеграме для города Москва/Курган.
Настройки модуля
В файле .env сделайте следующий настройки:
#для отправки ошибок
telegram.error=-XXXXXXXXXXXXXXXXXX
#для отправки уведомлений
telegram.notify=-XXXXXXXXXXXXXXXXXX
#по вкусу можете добавить еще каналов
telegram.bowling=-XXXXXXXXXXXXXXXXXX
telegram.holiday=-XXXXXXXXXXXXXXXXXX
telegram.cinema=-XXXXXXXXXXXXXXXXXX
telegram.moscow=-XXXXXXXXXXXXXXXXXX
telegram.kurgan=-XXXXXXXXXXXXXXXXXX
Отправка уведомлений
\Larakit\TelegramBot::add('Заказ боулинга в Кургане'); \Larakit\TelegramBot::send('bowling');
Далее система будет искать в .env запись "telegram.bowling", если найдет - отправит туда. Если не найдет будет искать общий канал "telegram", если найдет отправит туда. Если не найдет, то никому ничего не отправит.
Отправка уведомлений в несколько каналов
\Larakit\TelegramBot::add('Заказ боулинга в Кургане'); \Larakit\TelegramBot::send(['bowling', 'kurgan', 'notify']);