This package makes it easy to send notifications using Discord Webhook with Laravel 5.3.
You can install the package via composer:
composer require laravel-notification-channels/discord-webhook
Follow the official guide Using Webhook to set up your Discord Webhook.
Now you can use the channel in your via()
method inside the notification:
use Illuminate\Notifications\Notification;
use NotificationChannels\DiscordWebhook\DiscordWebhookChannel;
use NotificationChannels\DiscordWebhook\DiscordWebhookMessage;
class Application extends Notification
{
public function via($notifiable)
{
return [DiscordWebhookChannel::class];
}
public function toDiscordWebhook($notifiable)
{
return (new DiscordWebhookMessage())
->content('Your guild received a new membership application!');
}
}
In order to let your Notification know which Webhook (Discord Channel) you are targeting, add the routeNotificationForDiscordWebhook
method to your Notifiable model:
public function routeNotificationForDiscordWebhook()
{
return 'https://discordapp.com/api/webhooks/{webhook.id}/{webhook.token}';
}
Add ?wait=true
to your Webhook URL, to receive the sent message:
return 'https://discordapp.com/api/webhooks/{webhook.id}/{webhook.token}?wait=true';
Discord Webhook allows you to add embedded rich content to your message:
public function toDiscordWebhook($notifiable)
{
return (new DiscordWebhookMessage())
->from('Raid Calendar')
->content('**Next Raids**')
->embed(function ($embed) {
$embed->title('Dragon Dungeon')->description('*on Monday*')
->field('Raid Leader', 'TheTank', true)
->field('Co-Leader', 'HealMePls', true);
});
}
Discord Webhook allows you to upload a file with your message:
public function toDiscordWebhook($notifiable)
{
return (new DiscordWebhookMessage())
->content('__Member of the Day:__')
->file(\Storage::get('motd_avatar.png'), 'member_of_the_day.png');
}
content($text)
: The message contents (up to 2000 characters).from($username[, $avatar_url])
: Override the default username and avatar (optional) of the webhook.-(Does currently not work for Webhooks)tts()
: Send as a TTS message.file($content, $filename)
: The contents of the file being sent. NOTE: Does not work with embedded rich contentembed($callback)
: Define (up to 10) embedded rich content for the message. (see Example and Embeds)
title($title[, $url])
: Set the title of embed.description($text)
: Set the description of embed.color($color_int)
: Set the color code of the embed.footer($text[, $icon_url])
: Set the footer information.image($img_url)
: Set the image information.thumbnail($img_url)
: Set the thumbnail information.author($name[, $url, $icon_url])
: Set the author information.field($name, $value[, $inline_bool])
: Set the (inline) fields information.
Please see CHANGELOG for more information what has changed recently.
$ composer test
If you discover any security related issues, please email drdrjojo2k@gmail.com instead of using the issue tracker.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.