guywarner/laravel-google-chat-alerts

Send a message to GoogleChat

2.2.0 2024-03-25 17:37 UTC

README

This package can quickly send alerts to Google Chat. You can use this to notify yourself of any noteworthy events happening in your app.

A hard fork of Laravel Slack Alerts by Spatie

use GuyWarner\GoogleChatAlerts\Facades\GoogleChatAlert;

GoogleChatAlert::message("You have a new subscriber to the {$newsletter->name} newsletter!");

Under the hood, a job is used to communicate with Google Chat. This prevents your app from failing in case Google Chat is down.

Want to send alerts to Slack instead? Check out laravel-slack-alerts.

Want to send alerts to GoogleChat instead? Check out laravel-discord-alerts.

Installation

You can install the package via composer:

composer require guywarner/laravel-google-chat-alerts

You can set a GOOGLE_CHAT_ALERT_WEBHOOK env variable containing a valid Google Chat webhook URL. You can learn how to get a webhook URL [in the Google Chat API docs](https://api.Google Chat.com/messaging/webhooks).

Alternatively, you can publish the config file with:

php artisan vendor:publish --tag="google-chat-alerts-config"

This is the contents of the published config file:

return [
    /*
     * The webhook URLs that we'll use to send a message to Google Chat.
     */
    'webhook_urls' => [
        'default' => env('GOOGLE_CHAT_ALERT_WEBHOOK'),
    ],

    /*
     * This job will send the message to Google Chat. You can extend this
     * job to set timeouts, retries, etc...
     */
    'job' => GuyWarner\GoogleChatAlerts\Jobs\SendToGoogleChatChannelJob::class,
];

Usage

To send a message to Google Chat, simply call GoogleChatAlert::message() and pass it any message you want.

GoogleChatAlert::message("You have a new subscriber to the {$newsletter->name} newsletter!");

Using multiple webhooks

You can also use an alternative webhook, by specify extra ones in the config file.

// in config/google-chat-alerts.php

'webhook_urls' => [
    'default' => 'https://chat.googleapis.com/v1/spaces/XXXX',
    'sales' => 'https://chat.googleapis.com/v1/spaces/YYYYYY',
],

The webhook to be used can be chosen using the to function.

use GuyWarner\GoogleChatAlerts\Facades\GoogleChatAlert;

GoogleChatAlert::to('sales')->message("You have a new subscriber to the {$newsletter->name} newsletter!");

Formatting

Markdown

You can format your messages with markup. Learn how in the Google Chat API docs.

use GuyWarner\GoogleChatAlerts\Facades\GoogleChatAlert;

GoogleChatAlert::message("A message *with some bold statements* and _some italicized text_.");

Messages that @mention all users

You can use the same emoji codes as in Google Chat. This means custom emoji's are also supported.

use GuyWarner\GoogleChatAlerts\Facades\GoogleChatAlert;

GoogleChatAlert::message("New support ticket. <users/all>");

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please report to warnerdata@gmail.com or via Twitter DM @DigiGuyDev

Credits

License

The MIT License (MIT). Please see License File for more information.