https://github.com/laravel-notification-channels/rocket-chat
Rocket.Chat notifications channel for Laravel
https://github.com/laravel-notification-channels/rocket-chat
Last synced: 2 months ago
JSON representation
Rocket.Chat notifications channel for Laravel
- Host: GitHub
- URL: https://github.com/laravel-notification-channels/rocket-chat
- Owner: laravel-notification-channels
- License: mit
- Created: 2020-02-20T08:14:16.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-16T08:58:05.000Z (about 1 year ago)
- Last Synced: 2025-04-20T02:35:57.115Z (2 months ago)
- Language: PHP
- Homepage: https://laravel-notification-channels.com
- Size: 54.7 KB
- Stars: 13
- Watchers: 4
- Forks: 9
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Rocket.Chat Laravel Notifications Channel

[](https://packagist.org/packages/laravel-notification-channels/rocket-chat)
[](LICENSE.md)
[](https://travis-ci.org/laravel-notification-channels/rocket-chat)
[](https://styleci.io/repos/241828511)
[](https://scrutinizer-ci.com/g/laravel-notification-channels/rocket-chat)
[](https://scrutinizer-ci.com/g/laravel-notification-channels/rocket-chat/?branch=master)
[](https://packagist.org/packages/laravel-notification-channels/rocket-chat)## Introduction
This package makes it easy to send notifications using [RocketChat](https://rocket.chat/) with Laravel 5.6+.
## Contents
- [Installation](#installation)
- [Setting up the RocketChat service](#setting-up-the-rocketchat-service)
- [Usage](#usage)
- [Available Message methods](#available-message-methods)
- [Changelog](#changelog)
- [Testing](#testing)
- [Security](#security)
- [Contributing](#contributing)
- [Credits](#credits)
- [Change log](#changelog)
- [License](#license)## Installation
You can install the package via composer:
```shell script
$ composer require laravel-notification-channels/rocket-chat
```### Setting up the RocketChat service
In order to send message to RocketChat channels, you need to obtain [Webhook](https://rocket.chat/docs/administrator-guides/integrations#how-to-create-a-new-incoming-webhook).
Add your RocketChat API server's base url, incoming Webhook Token and optionally the default channel to your `config/services.php`:
```php
// config/services.php
...
'rocketchat' => [
// Base URL for RocketChat API server (https://your.rocketchat.server.com)
'url' => env('ROCKETCHAT_URL'),
'token' => env('ROCKETCHAT_TOKEN'),
// Default channel (optional)
'channel' => env('ROCKETCHAT_CHANNEL'),
],
...
```## Usage
You can use the channel in your `via()` method inside the notification:
```php
use Illuminate\Notifications\Notification;
use NotificationChannels\RocketChat\RocketChatMessage;
use NotificationChannels\RocketChat\RocketChatWebhookChannel;class TaskCompleted extends Notification
{
public function via($notifiable): array
{
return [
RocketChatWebhookChannel::class,
];
}public function toRocketChat($notifiable): RocketChatMessage
{
return RocketChatMessage::create('Test message')
->to('channel_name') // optional if set in config
->from('webhook_token'); // optional if set in config
}
}
```In order to let your notification know which RocketChat channel you are targeting, add the `routeNotificationForRocketChat` method to your Notifiable model:
```php
public function routeNotificationForRocketChat(): string
{
return 'channel_name';
}
```### Available methods
`from()`: Sets the sender's access token.
`to()`: Specifies the channel id to send the notification to (overridden by `routeNotificationForRocketChat` if empty).
`content()`: Sets a content of the notification message. Supports Github flavoured markdown.
`alias()`: This will cause the message’s name to appear as the given alias, but your username will still display.
`emoji()`: This will make the avatar on this message be an emoji. (e.g. ':see_no_evil:')
`avatar()`: This will make the avatar use the provided image url.
`attachment()`: This will add an single attachment.
`attachments()`: This will add multiple attachments.
`clearAttachments()`: This will remove all attachments.
### Adding Attachment
There are several ways to add one ore more attachments to a message
```php
public function toRocketChat($notifiable)
{
return RocketChatMessage::create('Test message')
->to('channel_name') // optional if set in config
->from('webhook_token') // optional if set in config
->attachments([
RocketChatAttachment::create()->imageUrl('test'),
RocketChatAttachment::create(['image_url' => 'test']),
new RocketChatAttachment(['image_url' => 'test']),
[
'image_url' => 'test'
]
]);
}
```#### Available methods
`color()`: The color you want the order on the left side to be, any value background-css supports.
`text()`: The text to display for this attachment, it is different than the message’s text.
`timestamp()`: Displays the time next to the text portion. ISO8601 Zulu Date or instance of any `\DateTime`
`thumbnailUrl()`: An image that displays to the left of the text, looks better when this is relatively small.
`messageLink()`: Only applicable if the ts is provided, as it makes the time clickable to this link.
`collapsed()`: Causes the image, audio, and video sections to be hiding when collapsed is true.
`author($name, $link, $icon)`: shortcut for author methods
`authorName()`: Name of the author.
`authorLink()`: Providing this makes the author name clickable and points to this link.
`authorIcon()`: Displays a tiny icon to the left of the Author’s name.
`title()`: Title to display for this attachment, displays under the author.
`titleLink()`: Providing this makes the title clickable, pointing to this link.
`titleLinkDownload()`: When this is true, a download icon appears and clicking this saves the link to file.
`imageUrl()`: The image to display, will be “big” and easy to see.
`audioUrl()`: Audio file to play, only supports what html audio does.
`videoUrl()`: Video file to play, only supports what html video does.
`fields()`: An array of Attachment Field Objects.
```php
[
[
'short' => false, // Whether this field should be a short field. Default: false
'title' => 'Title 1', //The title of this field. Required
'value' => 'Value 1' // The value of this field, displayed underneath the title value. Required
],
[
'short' => true,
'title' => 'Title 2',
'value' => 'Value 2'
],];
```## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.
## Testing
```shell script
$ vendor/bin/phpunit
```## Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
## Credits
- [Anton Komarev]
- [Nicholas]
- [atymic]
- [All Contributors](../../contributors)## Change log
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
## About CyberCog
[CyberCog] is a Social Unity of enthusiasts. Research best solutions in product & software development is our passion.

[Anton Komarev]: https://komarev.com
[Nicholas]: https://github.com/Funfare
[atymic]: https://github.com/atymic
[CyberCog]: https://cybercog.su