Skip to content

Discord Webhook Messenger for Sending Public Messages to Server Channels

License

Notifications You must be signed in to change notification settings

mehrancodes/laravel-discord-notification

Repository files navigation

Discord Server Channel Notifier for Laravel 6.0+

Latest Stable Version Total Downloads License StyleCI

Send Discord public messages through webhook directly to the Discord server channels. This works by sending a post request with some JSON data to a unique URL Discord provides when you create your Webhook. Take a look at contributing.md to see a to do list.

Installation

You can install the package via composer:

$ composer require mehrancodes/laravel-discord-notifier

Next you need to publish the package config to add your Discord Webhook URLs.

$ php artisan vendor:publish --tag=discord-notifier-config

Setting up your Discord Webhook

Discord provides a feature to create Webhooks, but note that it is only available in server channels, not in direct messages. To create a Webhook, click the cog next to the channel in which you wish to set up your Webhook:

discord-edit-channel-cog.png

Then head to the Webhooks tab, and hit Create Webhook. You'll then be able to specify the name, which is the name that is used when sending messages if none is specifided in the JSON post request. You can also adjust the channel, and add a default image. Again, that image can later be customized from the JSON post request.

Then at the bottom, you'll get the unique Webhook URL. Paste it in your discord-notifier.php config file.

// config/discord-notifier.php
'channels' => [
    'capitan_hook' => [
        'webhook' => 'https://discord.com/api/webhooks/YOUR_CHANNEL_UNIQUE_IDENTIFIER',
    ],
    // You can add as many Discord channels as you like to this array...
]

Usage

In your logic where you want to send a message to a server channel, you may use the Discord facade to define the channel name you want to receive the notification message, the content message, and send it.

use MehranCodes\Notifier\Facades\Discord;

Discord::body("The Mehran's new online meeting has ended up successfully")
    ->embeds([
        'title' => 'View Meeting Details On Nova Panel',
        'url' => url('nova/resources/meetings/1'),
    ])
    ->send();

You can use the embeds method to pass an array of embeded rich content.

Change log

Please see the changelog for more information on what has changed recently.

Testing

$ composer test

Contributing

Please see contributing.md for details and a todolist.

Security

If you discover any security related issues, please email author email instead of using the issue tracker.

Credits

License

license. Please see the license file for more information.

About

Discord Webhook Messenger for Sending Public Messages to Server Channels

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages