This package makes it easy to send notifications using Flock with Laravel 5.3+.
return FlockMessage::create()
->content('Laravel Flock Notification Channel')
->attachment(function ($attachment) {
$attachment->title('Button Widget')
->description('Description')
->color('#fff000');
});
Install this package with Composer:
composer require vrajroham/laravel-flock-notification
Register the ServiceProvider in your config/app.php (If you are using Laravel < 5.5):
Vrajroham\LaravelFlockNotification\FlockServiceProvider::class,
Create incoming webhook by going to https://admin/flock.com or by choosing Manage your team in Flock desktop app.
For more information see the flock documentation to create incoming webhook.
You can now send messages in Flock Group by creating a FlockMessage:
- Add
routeNotificationForFlock()
toApp\User
model
public function routeNotificationForFlock()
{
return $this->flock_webhook_url;
}
<?php
use Vrajroham\LaravelFlockNotification\FlockChannel;
use Vrajroham\LaravelFlockNotification\FlockMessage;
use Illuminate\Notifications\Notification;
class OderCreated extends Notification
{
public function via($notifiable)
{
return [FlockChannel::class];
}
public function toFlock($notifiable)
{
return FlockMessage::create()
->content('Order created')
->attachments(function ($attachment) {
$attachment->title('View order')
->description('Order description')
->color('#fff000');
});
}
}
Complete message and attachment schema can be found at Flock Message Object and Flock Attachment Object
- content(
$string
) - flockml(
$string
) //FlockML as attachment - notification(
$string
) - sendAs(
$senderName
,$profileImageUrl
) - attachments(
callback
)-
title(
$string
) -
description(
$string
) -
color(
$string
) -
url(
$url
) -
id(
$string
) -
forward(
$boolean
) -
views(
callback
)- widget(
$source
,$height
,$width
) - html(
$inlineHtmlString
,$height
,$width
) - flockml(
$flockMLString
) - image(
callback
)- original(
$url
,$height
,$width
) - thumbnail(
$url
,$height
,$width
) - filename(
$filename
)
- original(
- widget(
-
downloads(
array
)// Only 'src' field is mandatory. [ [ 'src' => 'https://vrajroham.me/dl/vrajroham_cv.pdf', 'mime' => 'application/pdf', 'filename' => 'CV.pdf', 'size' => 2000 //bytes ], ... ]
- buttons(
array
)[ [ 'name' => 'Button Name', 'icon' => 'https://avatars1.githubusercontent.com/u/12662173?s=460&v=4', 'action' => [ 'type' => 'openBrowser', 'url' => 'https://laravel.com', 'desktopType' => 'sidebar', ], 'id' => 'btn1' ], ... ]
-
public function toFlock($notifiable)
{
return FlockMessage::create()
->content('This is text notification.');
}
public function toFlock($notifiable)
{
return FlockMessage::create()
->content('This is text notification.')
->sendAs("Vaibhavraj", 'https://avatars1.githubusercontent.com/u/12662173?s=460&v=4');
}
public function toFlock($notifiable)
{
return FlockMessage::create()
->attachments(function ($attachment){
$attachment->title('This is error message.')
->color('#FF0000'); //Red
});
}
public function toFlock($notifiable)
{
return FlockMessage::create()
->notification('You have important message')
->content('This is text notification.');
}
public function toFlock($notifiable)
{
return FlockMessage::create()
->attachments(function ($attachment){
$attachment->title('Website as widget')
->views(function ($view){
$view->widget('https://vrajroham.me', 400, 400);
});
});
}
public function toFlock($notifiable)
{
return FlockMessage::create()
->attachments(function ($attachment){
$attachment->title('This are the buttons')
->buttons([
[
'name' => 'Button 1',
'icon' => 'https://avatars1.githubusercontent.com/u/12662173?s=460&v=4',
'action' => [
'type' => 'openBrowser',
'url' => 'https://github.com/vrajroham',
],
'id' => 'btn1'
],
[
'name' => 'Button 2',
'icon' => 'https://laravel.com/favicon.png',
'action' => [
'type' => 'openBrowser',
'url' => 'https://laravel.com',
],
'id' => 'btn2'
]
]);
});
}
public function toFlock($notifiable)
{
return FlockMessage::create()
->attachments(function ($attachment) {
$attachment->title('Image as attachment')
->views(function ($view) {
$view->image(function ($image)
{
$image->original('https://avatars1.githubusercontent.com/u/12662173?s=460&v=4',400,400)
->thumbnail('https://avatars1.githubusercontent.com/u/12662173?s=460&v=4',100,100)
->filename('vaibhavraj.png');
});
});
});
}
public function toFlock($notifiable)
{
return FlockMessage::create()
->attachments(function ($attachment) {
$attachment->title('Download link')
->downloads([
[
'src' => 'https://vrajroham.me/dl/vrajroham_cv.pdf',
'mime' => 'application/pdf',
'filename' => 'file-1.pdf',
'size' => 1500
],
]);
});
}
Please see CHANGELOG for more information what has changed recently.
$ composer test
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Please see CONTRIBUTING for more information about contributors.
The MIT License (MIT). Please see License File for more information.