serjoga / telegram
Telegram Notifications Driver
Installs: 10
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 174
pkg:composer/serjoga/telegram
Requires
- php: >=5.6.4
- guzzlehttp/guzzle: ^6.2
- illuminate/notifications: 5.3.* || 5.4.* || 5.5.*
- illuminate/support: 5.1.* || 5.2.* || 5.3.* || 5.4.* || 5.5.*
Requires (Dev)
- mockery/mockery: ^0.9.5
- orchestra/testbench: 3.4.x-dev
- phpunit/phpunit: 5.*
This package is not auto-updated.
Last update: 2025-10-18 19:19:21 UTC
README
This package makes it easy to send Telegram notification using Telegram Bot API with Laravel 5.3.
Contents
Installation
You can install the package via composer:
composer require laravel-notification-channels/telegram
You must install the service provider:
// config/app.php 'providers' => [ ... NotificationChannels\Telegram\TelegramServiceProvider::class, ],
Setting up your Telegram Bot
Talk to @BotFather and generate a Bot API Token.
Then, configure your Telegram Bot API Token:
// config/services.php ... 'telegram-bot-api' => [ 'token' => env('TELEGRAM_BOT_TOKEN', 'YOUR BOT TOKEN HERE') ], ...
Usage
You can now use the channel in your via() method inside the Notification class.
use NotificationChannels\Telegram\TelegramChannel; use NotificationChannels\Telegram\TelegramMessage; use Illuminate\Notifications\Notification; class InvoicePaid extends Notification { public function via($notifiable) { return [TelegramChannel::class]; } public function toTelegram($notifiable) { $url = url('/invoice/' . $this->invoice->id); return TelegramMessage::create() ->to($this->user->telegram_user_id) // Optional. ->content("*HELLO!* \n One of your invoices has been paid!") // Markdown supported. ->button('View Invoice', $url); // Inline Button } }
Here's a screenshot preview of the above notification on Telegram Messenger:
Routing a message
You can either send the notification by providing with the chat id of the recipient to the to($chatId) method like shown in the above example or add a routeNotificationForTelegram() method in your notifiable model:
... /** * Route notifications for the Telegram channel. * * @return int */ public function routeNotificationForTelegram() { return $this->telegram_user_id; } ...
Available Message methods
- to($chatId): (integer) Recipient's chat id.
- content(''): (string) Notification message, supports markdown. For more information on supported markdown styles, check out these docs.
- button($text, $url): (string) Adds an inline "Call to Action" button. You can add as many as you want and they'll be placed 2 in a row.
- options([]): (array) Allows you to add additional or override- sendMessagepayload (A Telegram Bot API method used to send message internally). For more information on supported parameters, check out these docs.
Alternatives
For advance usage, please consider using telegram-bot-sdk instead.
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Security
If you discover any security related issues, please email syed@lukonet.com instead of using the issue tracker.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.
