ccoeder / discord-webhook
Discord Webhook notifications channel for Laravel 5.8
Requires
- php: >=7.0.0
- guzzlehttp/guzzle: ^6.3
- illuminate/notifications: 5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*
- illuminate/support: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~6.0
This package is auto-updated.
Last update: 2024-10-29 05:59:55 UTC
README
This package makes it easy to send notifications using Discord Webhook with Laravel 5.3.
This is a fork from siemenrotensen/discord-webhook because I need to use with on-demand notifications so I added support for that.
Contents
- Installation - Setting up the Discord Webhook service
- Usage
- Changelog
- Testing
- Security
- Contributing
- Credits
- License
Installation
You can install the package via composer:
composer require ccoeder/discord-webhook
Setting up your Discord Webhook
Follow the official guide Using Webhook to set up your Discord Webhook.
Usage
Now you can use the channel in your via()
method inside the notification:
use Illuminate\Notifications\Notification; use NotificationChannels\DiscordWebhook\DiscordWebhookMessage; class Application extends Notification { public function via($notifiable) { return ['discord-webhook']; } public function toDiscordWebhook($notifiable) { return (new DiscordWebhookMessage()) ->content('Your guild received a new membership application!'); } }
Routing a message
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';
Send a message with embeds
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); }); }
Send a message with file upload
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'); }
Available Message methods
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)
Available Embed methods
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.
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Security
If you discover any security related issues, please email drdrjojo2k@gmail.com 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.