mihakot / notification-telegram
Laravel Telegram notifications channel
Requires
- php: ^8.1
- ext-json: *
- guzzlehttp/guzzle: ^7.4
- illuminate/contracts: ^9.0 || ^10.0
- illuminate/notifications: ^9.0 || ^10.0
- illuminate/support: ^9.0 || ^10.0
- spatie/laravel-package-tools: ^1.12.0
Requires (Dev)
- mockery/mockery: ^1.4.4
- nunomaduro/larastan: ^1.0
- orchestra/testbench: ^6.13 || ^7.0
- phpstan/phpstan: 1.8.2
README
[TOC]
Настройка
Установка пакета
Установка пакета через composer:
composer require mihakot/notification-telegram
При необходимости можно опубликовать файл конфигурации
@php artisan vendor:publish --vendor NotificationChannels\Telegram\TelegramServiceProvider
Настройка вашего Telegram Bot
Зарегистрировать бота через @BotFather и получить Bot API Token.
Затем сконфигурировать его в .env вашего приложения
TELEGRAM_API_TOKEN={YOUR_API_TOKEN}
Данная переменная используется в файле конфигурации, но вы можете использовать другие значения в момент вызова метода.
\NotificationChannels\Telegram\Telegram::message()
->setToken('ВАШ_ТОКЕН')
Получение Chat ID
Для отправки уведомлений требуется знать Chat ID.
Получить его можно через webhook или через Telegram::updates()
Использование
Теперь можете использовать канал telegram
в методе via()
внутри класса Notification
.
# пример использования
use Illuminate\Notifications\Notification;
class NotifyUser extends Notification
{
public function via($notifiable)
{
return ["telegram"];
}
public function toTelegram($notifiable)
{
return \NotificationChannels\Telegram\Telegram::message()
// Получатель
->to($notifiable->telegram_chat_id)
->content("Hello there!")
->line("Your are welcome!")
->line("Thank you!")
}
}
Общедоступные методы
// установка токена
->setToken()
// установка адреса api
->setApiBaseUri()
// получатель события
->to()
// добавление кнопки с действием к сообщению
->button()
// добавление дополнительных опций
->options()
Получение последних данных
\NotificationChannels\Telegram\Telegram::updates()
->get()
Доступные методы
# количество получаемых событий
->limit()
# получаемые события, номер последнего получаемого события (последнее полученное + 1)
->latest()
# получить события
->get()
Отправка сообщения
\NotificationChannels\Telegram\Telegram::message()
->to('Chat ID')
->content('YOUR_MESSAGE')
->send()
Доступные методы
# текст уведомления
->content()
# добавление строки к уведомлению
->line()
# добавление экранированной строки к уведомлению
->escapedLine()
# добавление blade шаблона в качестве уведомления
->view()
# отправка сообщения
->send()
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email mihakot@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.