企业微信使用 work-wechat-robot 发送群机器人消息及输出日志

这是一个企业微信群机器人的sdk, 支持企微机器人所有消息类型。亦可以作为monolog的通道使用,将日志输出到群内,更方便排查发现问题。如有帮助欢迎 star~

效果图

0.安装

composer require huo-zi/work-wechat-robot

php < 8 || laravel < 9

composer require huo-zi/work-wechat-robot:~2.0

1.使用

1.1 直接使用

$robot = new  WorkWechatRobot($robotKey);
$robot->text($content); // 文本消息
$robot->markdown($content); // markdown消息
$robot->image($filename); // 图片消息 支持本地图片和网络图片
$robot->news($title, $url, $desc, $picurl); // 图文消息
$robot->file($filename); // 发送上传文件

1.2 v2.1.0之后支持创建消息对象发送消息:

$messsage = new  Text(); // new Markdwon(); new Image()...
$messsage->content('文本消息');
$messsage->send($robotKey); // 或使用 $robot->message($messsage);

2.作为Monolog的通道使用

2.1 配置通道

  • laravel框架

在配置文件logging.phpchannels数组中增加:

'wxwork_robot' => [
    'driver' => 'monolog',  
    'level' => 'notice',  
    'handler' => \Huozi\WorkWechat\Monolog\Handler\RobotHandler::class, 
    'handler_with' => [
        'robotKey' => 'your_wxwork_robot_key',  
    ],  
],

然后修改channels节点stack,在channels中增加wxwork_robot

'stack' => [
    'driver' => 'stack',
    'channels' => ['single', ... , 'wxwork_robot'],
    'ignore_exceptions' => false,
],

详见laravel高度自定义Monolog通道

  • 其他框架
$logger = new \Monolog\Logger($name);
$logger->pushHandler(new  RobotHandler($robotKey));

2.2 日志格式化

提供了TextFormatterMarkdownFormatter格式化原始日志,使日志内容方便阅读

  • laravel框架,修改logging.php, 增加formatter
'wxwork_robot' => [
    'driver' => 'monolog',
    'level' => 'notice',
    'handler' => \Huozi\WorkWechat\Monolog\Handler\RobotHandler::class,
    'handler_with' => [
        'robotKey' => 'your_wxwork_robot_key',
    ],
    'formatter' => \Huozi\WorkWechat\Monolog\Formatter\MarkdownFormatter::class,
 ],

TextFormatterMarkdownFormatter都提供了默认的格式化结构,如果需要自定义可以:

'formatter' => \Huozi\WorkWechat\Monolog\Formatter\TextFormatter::class,
'formatter_with' => [
    'messageFormat' => '{level_name}:{message} \n {extra.file}:{extra.line}'</b>
]
  • 其他框架
$messageFormat = '{level_name}:{message} \n {extra.file}:{extra.line}';
$formatter = new  TextFormatter($messageFormat);
$logger->pushHandler((new  RobotHandler($robotKey))->setFormatter($formatter));

License


Licensed under The MIT License (MIT).


GIT地址:work-wechat-robot

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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