该软件包已被弃用,不再维护。未建议替代软件包。

Laravel HipChat 通知通道

v2.2.0 2018-11-21 06:08 UTC

This package is auto-updated.

Last update: 2019-09-26 23:32:20 UTC


README

Latest Version on Packagist Software License Build Status StyleCI SensioLabsInsight Quality Score Code Coverage Total Downloads

此软件包使得使用 Laravel 发送 HipChat 通知变得简单。

通道已弃用

HipChat 在 2019 年初已停止服务。因此,此通道将不再接收更新,并已被弃用。

内容

安装

您可以通过 composer 安装此软件包

composer require laravel-notification-channels/hipchat

如果您使用的是 Laravel < 5.5 或您已关闭软件包自动发现,您必须手动注册服务提供者

// config/app.php
'providers' => [
    ...
    NotificationChannels\HipChat\HipChatServiceProvider::class,
],

设置 HipChat 服务

将您的 HipChat 账户令牌以及可选的默认房间和 HipChat API 服务器的基准 URL 添加到您的 config/services.php

// config/services.php
...
'hipchat' => [
    'token' => env('HIPCHAT_TOKEN'),
    // Default room (optional)
    'room' => 'Notifications',
    // Base URL for Hipchat API server (optional)
    'url' => 'https://api.your.hipchat.server.com',
],
...

使用

发送简单的房间通知

注意:为了能够发送房间通知,您需要一个具有 send_notification 范围的认证令牌(个人和房间令牌都适用)。

use NotificationChannels\HipChat\HipChatChannel;
use NotificationChannels\HipChat\HipChatMessage;
use Illuminate\Notifications\Notification;

class UserRegistered extends Notification
{
    public function via($notifiable)
    {
        return [HipChatChannel::class];
    }

    public function toHipChat($notifiable)
    {
        return HipChatMessage::create()
            ->room('New Registrations')
            ->html("<strong>A new user has registered!</strong>")
            ->success()
            ->notify();
    }
}

发送带卡的房间通知

有关 HipChat 通知卡的更多信息,请参阅此处

public function toHipChat($notifiable)
{
    return HipChatMessage::create()
        ->text('Laravel 5.3 has arrived!')
        ->notify(true)
        ->card(Card::create()
            ->title('Laravel')
            ->style(CardStyles::APPLICATION)
            ->url('https://laravel.net.cn')
            ->html('Laravel 5.3 has arrived! The best release ever!')
            ->cardFormat(CardFormats::MEDIUM)
            ->icon('http://bit.ly/2c7ntiF')
            ->activity('Laravel 5.3 has arrived!', 'http://bit.ly/2c7ntiF')
            ->addAttribute(CardAttribute::create()
                ->label('Laravel Scout')
                ->icon('http://bit.ly/2c7ntiF')
                ->value('Driver based full-text search.')
                ->url('https://laravel.net.cn/docs/5.3/scout')
            )
            ->addAttribute(CardAttribute::create()
                ->label('Laravel Echo')
                ->icon('http://bit.ly/2c7ntiF')
                ->value('Event broadcasting, evolved.')
                ->url('https://laravel.net.cn/docs/5.3/broadcasting')
            )
            ->addAttribute(CardAttribute::create()
                ->label('Laravel Passport')
                ->icon('http://bit.ly/2c7ntiF')
                ->value('API authentication.')
                ->url('https://laravel.net.cn/docs/5.3/passport')
            )
        );
}

在 HipChat 房间中共享文件

注意:为了能够共享文件,您需要一个具有 send_message 范围的认证令牌(即个人令牌)。您可以通过访问 HipChat -> 账户设置 -> API 访问创建此类令牌。

在大多数情况下,您只需要提供要共享的现有文件的路径即可

public function toHipChat($notifiable)
{
    return HipChatFile::create($this->user->photo);
}

您还可以选择发送一条文本消息

public function toHipChat($notifiable)
{
    return HipChatFile::create($this->user->photo);
        ->text("Look we've got a new user!");
}

如果您需要更多控制,或者您正在动态创建文件内容

public function toHipChat($notifiable)
{
    return HipChatFile::create()
        ->fileName('user_photo.png')
        ->fileType('image/png')
        ->fileContent(fopen('http://example.com/user/photo/johndoe', 'r'))
        ->text("Look we've got a new user!");
}

可用方法

HipChatMessage

  • create():创建一个新的 HipChatMessage 实例。
  • room():设置要发送通知的 HipChat 房间的 id 或名称。
  • from():设置要显示在发送者姓名之外的额外标签(可选)。
  • content():设置通知消息的内容。
  • text():设置格式为纯文本,并可选设置内容。
  • html():设置格式为HTML,并可选设置内容。允许的HTML标签:a, b, i, strong, em, br, img, pre, code, 列表,表格。
  • color():设置消息颜色。查看MessageColors以获取允许的值。
  • notify():指定消息是否在Hipchat客户端中触发用户通知。
  • info():设置通知级别为info,颜色为MessageColors::GRAY
  • success():设置通知级别为success,颜色为MessageColors::GREEN
  • error():设置通知级别为info,颜色为MessageColors::RED

Card

  • create():创建一个新的Card实例。
  • title():设置卡片标题。
  • id():设置卡片ID。
  • style():设置卡片样式。查看CardStyles以获取允许的值。
  • text():设置格式为纯文本,并可选设置内容。
  • html():设置格式为HTML,并可选设置内容。
  • cardFormat():设置卡片的格式。查看CardFormats以获取允许的值。
  • url():设置卡片的URL。
  • thumbnail():设置卡片的缩略图。
  • activity():设置卡片的活动信息。
  • icon():设置卡片的图标。
  • addAttribute():将一个CardAttribute添加到卡片中。

CardAttribute

  • create():创建一个新的CardAttribute实例。
  • value():设置属性的文本值。
  • label():设置属性的标签。
  • url():设置属性的URL。
  • style():设置属性的样式。查看CardAttributeStyles以获取允许的值。
  • icon():设置属性的图标。

HipChatFile

  • create():创建一个新的HipChatFile实例。
  • room():设置要分享文件的HipChat房间ID或名称。
  • path():将fileContent设置为现有文件的资源,并尝试检测并设置fileNamefileType(如果未明确设置)。
  • fileName:设置文件名。
  • fileContent:明确设置文件内容。可以是字符串、流或文件资源。如果传递了资源,则尝试检测并设置fileType(如果未明确设置)。
  • fileType:明确设置文件的MIME类型。
  • text():设置与文件一起发送的文本消息。

测试

$ composer test

安全

如果您发现任何与安全相关的问题,请通过电子邮件pmatseykanets@gmail.com联系我们,而不是使用问题跟踪器。

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

请参阅CONTRIBUTING以获取详细信息。

致谢

特别感谢Jerry Price的帮助。

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件