定制 rocont/laravel-notification-channel-compass 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

rocont/laravel-notification-channel-compass

最新稳定版本:0.0.9

Composer 安装命令:

composer require rocont/laravel-notification-channel-compass

包简介

Laravel Notification Channel for Compass Userbot

README 文档

README

Laravel
Compass Userbot
License

Пакет разработан компанией Rocont (занимается веб-разработкой на Laravel).

Что это?

Данный пакет добавляет в Laravel новый канал нотификаций — compass, который позволяет отправлять сообщения, файлы и реакции через Compass Userbot API.

Теперь вы можете использовать привычный механизм Notification Laravel для:

  • отправки сообщений конкретным пользователям (по user_id),
  • отправки сообщений в группы (по group_id),
  • написания ответов в треды (message_id),
  • загрузки и пересылки файлов,
  • выбора нужного бота через конфиг по ключу.

Установка

composer require vendor/laravel-notification-channel-compass
php artisan vendor:publish --provider="Vendor\\CompassChannel\\CompassServiceProvider" --tag=config

Конфигурация config/compass.php

<?php

return [

    'default' => env('COMPASS_DEFAULT_BOT', 'main'),

    'bots' => [
        'main' => [
            'token' => env('COMPASS_BOT_MAIN'),
        ],
        'birthday' => [
            'token' => env('COMPASS_BOT_BIRTHDAY'),
        ],
        'marketing' => [
            'token' => env('COMPASS_BOT_MARKETING'),
        ],
    ],

    'base_url' => rtrim(env('COMPASS_BASE_URL', 'https://userbot.getcompass.com/'), '/').'/api/v3/',
    'timeout' => (int) env('COMPASS_HTTP_TIMEOUT', 10),
    'retries' => (int) env('COMPASS_HTTP_RETRIES', 1),
];

Пример .env

COMPASS_DEFAULT_BOT=main

COMPASS_BOT_MAIN=xxxx-main-token-xxxx
COMPASS_BOT_BIRTHDAY=xxxx-birthday-token-xxxx
COMPASS_BOT_MARKETING=xxxx-marketing-token-xxxx

COMPASS_BASE_URL=https://userbot.getcompass.com/
COMPASS_HTTP_TIMEOUT=10
COMPASS_HTTP_RETRIES=1

Использование

В модели пользователя

class User extends Model
{
    use Notifiable;

    public function routeNotificationForCompass($notification = null): ?int
    {
        return $this->compass_user_id;
    }
}

Пример уведомления (по умолчанию)

Если не указать bot, будет использован ключ default из config/compass.php.

class WelcomeOnCompass extends Notification
{
    public function via($notifiable): array
    {
        return ['compass'];
    }

    public function toCompass($notifiable): array
    {
        return [
            'type' => 'text',
            'text' => "Привет, {$notifiable->name}! 🎉 Добро пожаловать.",
        ];
    }
}

Пример уведомления с выбором бота

class BirthdayNotification extends Notification
{
    public function via($notifiable): array
    {
        return ['compass'];
    }

    public function toCompass($notifiable): array
    {
        $message = "С днём рождения, {$notifiable->name}! 🎉";

        return [
            'bot'  => 'birthday', // ключ из config('compass.bots')
            'type' => 'text',
            'text' => $message,
        ];
    }
}

Отправка через route

Notification::route('compass', [
    'group_id' => env('COMPASS_GROUP_ID'),
])
->notify(new WelcomeOnCompass());
Notification::route('compass', [
    'group_id' => env('COMPASS_GROUP_ID'),
])
->notify(new BirthdayNotification());

Отправка файла в тред

Notification::route('compass', ['message_id' => $rootMessageId])
    ->notify(new class('/path/to/file.pdf') extends Notification {
        public function __construct(private string $path) {}
        public function via($n) { return ['compass']; }
        public function toCompass($n): array {
            return [
                'bot' => 'marketing',
                'type' => 'file',
                'file' => $this->path,
            ];
        }
    });

Тестирование

Http::fake([
    'userbot.getcompass.com/api/v3/*' => Http::response([
        'status'   => 'ok',
        'response' => ['message_id' => 'abc123'],
    ], 200),
]);

Лицензия

MIT License.

Авторство

Разработано компанией Rocont — мы специализируемся на веб-разработке на Laravel и интеграциях.
Если у вас есть проект или интеграция для Compass — свяжитесь с нами 🚀

统计信息

  • 总下载量: 3
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-10-10