joecampo/laravel-notification-basecamp

Post notifications to Basecamp 3 Campfires
8,368 6
Install
composer require joecampo/laravel-notification-basecamp
Latest Version:6.0.0
PHP:>=7.2
License:MIT
Last Updated:Feb 24, 2025
Links: GitHub  ·  Packagist
Maintainer: campo

laravel-notification-basecamp

Basecamp 3 Chatbot Campfire notification channel for Laravel.

Latest Version on Packagist Software License Build Status Total Downloads

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.

Related Packages

erirk/paypalpayment

laravel-paypalpayment is simple package help you process direct credit card paym...

0
gabrieloliverio/laravel5-generators

Database metadata-based generators for Laravel 5

1
doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

628,058,007 9,707
laravel/framework

The Laravel Framework.

576,155,700 34,907
laravel/tinker

Powerful REPL for the Laravel framework.

485,678,092 7,440