larakit/lk-telegrambot

[Larakit] telegrambot отправка уведомлений

dev-master 2017-09-28 11:13 UTC

This package is auto-updated.

Last update: 2021-05-15 17:09:57 UTC


README

  1. Отправьте сообщение @BotFather: "/newbot"
  2. Вас попросят ввести имя будущего бота, оно должно заканчиваться на слово bot. Причем вы можете указывать его имя как "NickNameBot", так и "nickname_bot"
  3. Если имя бота не занято, то получите сообщение с поздравлением о создании бота и в нем же будет токен вашего нового бота
  4. Отправьте сообщение @BotFather: "/setinline"
  5. Сейчас создайте домен для бота, как это требует TelegramAPI и выложите файл webhook.phpв корень этого домена. Не забудьте использовать протокол https.
  6. Проверьте доступность бота, пройдя по урл например, https://bot.site.ru/webhook.php Вы будете должны увидеть "OK"
  7. Исправьте константы настроек 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);
  1. Зарегистрируем вебхук, для этого перейдем в консоли в директорию где лежит файл "webhook.php" и выполним:
$ php webhook.php

После этого в TelegramAPI будет зарегистрирован адрес, записанный TELEGRAM_BOT_SERVER_URL и все уведомления будут присылаться именно туда 9. Добавьте бота в группу телеграм, в которую хотите присылать уведомления 10. Посмотрите файл 'https://bot.site.ru/data.txt', там вы обнаружите сообщение, отправленное боту. В нем вы увидите свое имя и идентификатор. Впишите его в получатели

define('TELEGRAM_BOT_SERVER_RECIPIENTS', '123456789');

И теперь каждый раз, добавляя своего бота в новую группу только вы будете видеть сообщение в личку что бот был добавлен в такую то группу и пример кода для отправки сообщений ботом в эту группу

Каналы

Варианта уведомлений два:

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

Пример, есть следующие типы уведомлений

  • ошибки (их должны видеть только программисты)
  • уведомления (программисты и менеджер проекта)
  • бронирование боулинга (Курган/Москва)
  • бронирование праздников (Курган/Москва)
  • бронирование билета в кино (Курган/Москва)

Мы может создать группы как по типу боулинг/кино/праздник, а можем и сделать единую группу в телеграме для города Москва/Курган.

Настройки модуля

В файле .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']);