joecampo / laravel-notification-basecamp
Post notifications to Basecamp 3 Campfires
Installs: 6 117
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 3
Forks: 1
Open Issues: 0
Requires
- php: >=7.2
- guzzlehttp/guzzle: ^7.0
- illuminate/notifications: 5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/support: 5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- mockery/mockery: ^1.0
- orchestra/testbench: ^7.0
- phpunit/phpunit: ^9.5
README
Basecamp 3 Chatbot Campfire notification channel for Laravel.
Installation
You can install the package via composer:
composer require joecampo/laravel-notification-basecamp
Usage
Within a Laravel notification you can now use this as a channel for via()
use Illuminate\Notifications\Notification; use NotificationChannels\Basecamp\CampfireChannel; use NotificationChannels\Basecamp\CampfireMessage; class ReviewCreated extends Notification { public function via($notifiable) { return [CampfireChannel::class]; } public function toCampfire($notifiable) { return CampfireMessage::create()->data('Hello from my chatbot 🤖'); } }
You'll need to implement a routeNotificationForBasecamp
method on your notifiable model that returns the webhook URL provided by Basecamp 3 for your Chatbot. (Setting up a Basecamp 3 Chatbot)
public function routeNotificationForBasecamp() { return 'https://basecamp3.lvh.me'; }
Messages
Basecamp allows Chatbots to post the following tags table
tr
td
th
thead
tbody
details
summary
. You may use the following standard HTML tags in rich text content: div
, h1
, br
, strong
, em
, strike
, a
(with an href attribute), pre
, ol
, ul
, li
, and blockquote
.
This package provides helpers for a simple message, and details/summary messages.
Simple message
CampfireMessage::create()->data("It Doesn't Have To Be Crazy At Work");
Summary w/ details
The summary will show and the details will be hidden unless clicked. This is good for displaying messages that might have long stack traces etc.
CampfireMessage::create() ->summary('This is the text/markup used as the summary') ->details('This is the text/markup that is hidden unless clicked on in the UI');
Testing
composer test
License
The MIT License (MIT). Please see License File for more information.