spatie/interactive-slack-notification-channel

在 Laravel 应用中发送交互式 Slack 通知

1.2.0 2024-03-08 22:35 UTC

This package is auto-updated.

Last update: 2024-09-08 23:46:48 UTC


README

Latest Version on Packagist Tests Total Downloads

此包允许您发送交互式 Slack 通知。以下是一个这样的通知示例

支持我们

我们在创建 一流的开放源代码包 上投入了大量的资源。您可以通过 购买我们的付费产品之一 来支持我们。

我们非常感谢您从家乡寄来明信片,说明您正在使用我们哪个包。您可以在 我们的联系页面 上找到我们的地址。我们将发布所有收到的明信片在 我们的虚拟明信片墙上

安装

您可以通过 composer 安装此包

composer require spatie/interactive-slack-notification-channel

使用方法

在您的 Notifiable 类中,您应该添加一个名为 routeNotificationForInteractiveSlack 的方法,该方法返回一个包含 API 令牌的数组,可选地包含频道名称

public function routeNotificationForInteractiveSlack()
{
    return [
        'token' => 'xoxp-slack-token',
        'channel' => '#general' // this is optional
    ];
}

回复消息线程

假设您希望您的应用程序在订单创建时发送 Slack 通知。您还希望关于该订单的任何后续消息都放在同一个线程中。

使用 SlackApi 频道,您可以检索 Slack 的 chat.postMessage 方法中的 API 响应。使用此响应,您可以在订单发生的其他事件上发布消息,例如订单付款、发货、关闭等。

以下是一个示例

use Spatie\InteractiveSlackNotificationChannel\Messages\SlackMessage

public function toInteractiveSlack($notifiable)
{
    return (new SlackMessage)->content('A new order has been placed');
}

public function interactiveSlackResponse(array $response)
{    
    $this->order->update(['slack_thread_ts' => $response['ts']]);
}

在您的订单付款事件中,您可以有

use Spatie\InteractiveSlackNotificationChannel\Messages\SlackMessage;
use Spatie\InteractiveSlackNotificationChannel\Messages\SlackAttachment;

public function toInteractiveSlack($notifiable)
{
    $order = $this->order;

    return (new SlackMessage)
        ->success()
        ->content('Order paid')
        ->threadTimestamp($order->slack_thread_ts)
        ->attachment(function(SlackAttachment $attachment) use ($order) {
           $attachment
                ->title("Order $order->reference has been paid for.")
                ->content('Should now be processed.')
                ->action('View Order', route('orders', $order->reference));
       });
}

测试

composer test

变更日志

请参阅 变更日志 了解最近的变化信息。

贡献

请参阅 贡献指南 了解详细信息。

安全漏洞

请参阅 我们的安全策略 了解如何报告安全漏洞。

致谢

代码和 README 的某些部分基于 此包

许可

MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。