karacweb / kchat-notification-channel
A Laravel Notification Channel for Infomaniak's kChat
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 0
Open Issues: 0
pkg:composer/karacweb/kchat-notification-channel
Requires
- php: >=7.3
- ext-json: *
- guzzlehttp/guzzle: ^6.3 || ^7.0
- illuminate/notifications: ~6.0 || ~7.0 || ~8.0 || ~9.0 || ~10.0
- illuminate/support: ~6.0 || ~7.0 || ~8.0 || ~9.0 || ~10.0
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^9.0
README
This package makes it easy to send notifications using kChat with Laravel 5.5+, 6.x, 7.x, 8.x, 9.x, 10.x
This package leverages Infomaniak's public API to send notification to kChat channels with Laravel 5.5+, 6.x, 7.x, 8.x, 9.x and 10.x
return KChatMessage::create() ->to("123456789") ->content('The backup of your application succeeded') ->commentTo('987654321');
Contents
Installation
You can install the package via composer:
composer require karacweb/kchat-notification-channel
Next, if you're using Laravel without auto-discovery, add the service provider to config/app.php:
'providers' => [ // ... NotificationChannels\KChat\KChatServiceProvider::class, ],
Setting up the kChat service
- Create a token with the scope
kchat - Retrieve the Url of your kChat instance, it should look like
https://your-team.kchat.infomaniak.com. - Paste the token and your kChat base Url in your
config/services.phpfile:// config/services.php 'infomaniak_kchat' => [ 'token' => 'YOUR_API_TOKEN', 'base_url' => 'https://your-team.kchat.infomaniak.com' ],
Usage
Now you can use the channel in your via() method inside the notification:
use Illuminate\Notifications\Notification; use NotificationChannels\KChat\KChatChannel; use NotificationChannels\KChat\KChatMessage; class BackupSucceeded extends Notification { public function via($notifiable) { return [KChatChannel::class]; } public function toKChat($notifiable) { return KChatMessage::create() ->to("123456789") ->content('The backup of your application succeeded') ->commentTo('987654321'); // A post ID you wish to respond to } }
Instead of using the to($channel_id) method for specifying the channel ID you can also add the routeNotificationForKChat method inside your Notifiable model. This method needs to return the channel ID.
public function routeNotificationForKChat(Notification $notification) { return '123456789'; }
Available Message methods
to(string $channel_id): The channel to send the message to.content(string $content): Content of the message (Markdown supported).commentTo(string $post_id): A post ID you wish to respond to.
Retrieve the kChat channel ID
Use Markdown in the message
// app/Notifications/InterestingNotification.php public function toKChat($notifiable) { return KChatMessage::create() ->to("123456789") ->content(view('notificationTemplate', [ 'variable' => 'ABC', ])); }
// resources/views/notificationTemplate.blade.php ** ✅ Bold title ** Lorem ipsum *dolor* sit amet, ~~consectetur~~ adipiscing elit... Variable content {{ $variable }}
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Security
If you discover any security related issues, please email info@karac.ch 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.
