飞书 自定义群机器人 自建简易通知驱动及发送通知 实例

飞书群机器人-简易文本 通知驱动

示例代码要求

  • Laravel 框架 5.5以上
  • guzzle

开始

  • Laravel 项目 建立 Channels 文件夹 建议 LarkRobotChannel 驱动
    飞书 自定义群机器人  自建通知驱动及发送通知 实例

LarkRobotChannel 代码如下:

<?php

namespace App\Channels;

use GuzzleHttp\Client;
use Illuminate\Notifications\Notification;

class LarkRobotChannel
{
    /**
     * Send the given notification.
     *
     * @param  mixed  $notifiable
     * @param  \Illuminate\Notifications\Notification  $notification
     * @return void
     */
    public function send($notifiable, Notification $notification)
    {
        $message = $notification->toLarkRobot($notifiable);
        $key = $notifiable->routes['lark'];
        $data = array(
            "msg_type" =>"text",
            "content"=> [
                "text" =>$message
            ]
        );
        $client = new Client();
        $key = is_array($key) ? $key : array($key);
        foreach ($key as $keys) {
            $url = 'https://open.feishu.cn/open-apis/bot/v2/hook/' . $keys;
            $response = $client->post($url, [\GuzzleHttp\RequestOptions::JSON => $data ]);
        }
    }
}
  • App\Notifications 文件夹下 创建通知文件 LarkRobotNotification

飞书 自定义群机器人  自建通知驱动及发送通知 实例

代码如下:

<?php

namespace App\Notifications;

use App\Channels\LarkRobotChannel;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;

class LarkRobotNotification extends Notification
{
    use Queueable;

    public $message;

    public function __construct($message)
    {
        $this->message = $message;
    }

    public function via($notifiable)
    {
        return [LarkRobotChannel::class];
    }

    public function toLarkRobot($notifiable)
    {
        return $this->message;
    }
}
  • 业务代码使用 飞书通知
use Illuminate\Support\Facades\Notification;
use App\Notifications\LarkRobotNotification;

Notification::route('lark', $robotKey)
 ->notify(new LarkRobotNotification($content));

如需复杂效果 可以参考 飞书文档 扩展:

飞书 自定义群机器人  自建简易通知驱动及发送通知 实例

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

有个息知的东西挺好用的,可以试试

2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!