Skip to content

Laravel notification channel for Infomaniak's kChat

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

karacweb/kchat-notification-channel

Repository files navigation

Infomaniak's kChat Notifications Channel for Laravel

This package makes it easy to send notifications using kChat with Laravel 5.5+, 6.x, 7.x, 8.x, 9.x, 10.x

Latest Stable Version License PHPUnit tests

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.php file:
    // 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

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.

About

Laravel notification channel for Infomaniak's kChat

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Packages

No packages published

Languages