头图

企业微信机器人实时报错预警

🎈 创建机器人

  • 选择群右键管理聊天信息添加群机器人
  • 完善机器人基本信息,包括头像、名称等

添加群机器人

添加机器人按钮

完善机器人信息

🎈 机器人配置说明

  • 创建好的机器人都有一个唯一的 webhook 地址
  • 一定要保护好自己的 webhook 地址,如果一旦泄露,可以通过移除机器人,再重新创建一个去处理
  • 点击 webhook 地址,可以看到文档说明,也可以进行普通的推送消息配置
  • 其中的自定义推送消息,在机器人配置说明栏目里面有详细说明,但是需要自己开发

机器人webhook

机器人配置说明文档

🎈 机器人信息推送

  • 当前自定义机器人 支持文本(text)、markdown(markdown)、图片(image)、图文(news)四种消息类型
  • 我们只要根据它的文档说明,将指定类型的消息发送给 webhook 地址即可实现消息推送
// 文本消息类型
{
    "msgtype": "text",
    "text": {
        "content": "广州今日天气:29度,大部分多云,降雨概率:60%",
        "mentioned_list":["wangqing","@all"],
        "mentioned_mobile_list":["13800001111","@all"]
    }
}

// markdown消息类型
{
    "msgtype": "markdown",
    "markdown": {
        "content": "实时新增用户反馈<font color="warning">132例</font>,请相关同事注意。\n
         >类型:<font color="comment">用户反馈</font>
         >普通用户反馈:<font color="comment">117例</font>
         >VIP用户反馈:<font color="comment">15例</font>"
    }
}

// 图片消息类型
{
    "msgtype": "image",
    "image": {
        "base64": "DATA",
        "md5": "MD5"
    }
}

// 图文消息类型
{
    "msgtype": "news",
    "news": {
       "articles" : [
           {
               "title" : "中秋节礼品领取",
               "description" : "今年中秋节公司有豪礼相送",
               "url" : "www.qq.com",
               "picurl" : "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"
           }
        ]
    }
}

🎈 错误预警推送

  • 这里以 Thinkphp 框架为例,将错误预警整合到项目中,实现实时错误推送
  • 首先在 config 配置文件添加错误处理类,执行哪个文件来处理错误
  • 配置完成后,项目只要遇到错误,程序都会走指定的文件去处理
  • 然后在该文件中完善错误推送预警逻辑即可,一般错误预警都是用 markdown 类型进行推送
'exception_handle'       => '\app\common\exception\WorkWx',
<?php
namespace app\common\exception;

use Exception;
use itbdw\Ip\IpLocation;
use app\common\util\Helper;
use think\exception\Handle;
use think\exception\HttpException;
use think\exception\ValidateException;

class WorkWx extends Handle
{
    const WEBHOOK = '填写你自己的webhook地址';

    public function render(Exception $e)
    {
        $clientIP = Helper::getClientIp();
        $clientAddress = IpLocation::getLocation($clientIP);
        unset($clientAddress['ip']);
        $ipAddress = implode('-', $clientAddress);

        // 参数验证错误
        if ($e instanceof ValidateException) {
            $data = [
                'msgtype' => 'markdown',
                'markdown' => [
                    'content' => "来自 **<font color="info">天眼</font>** 的温馨提醒,请相关同事注意。
                             >**描述:** <font color="comment">参数验证错误</font>
                             >**端IP:** <font color="comment">{$clientIP}</font>
                             >**地址:** <font color="comment">{$ipAddress}</font>
                             >**状态:** <font color="comment">{$e->getCode()}</font>
                             >**行数:** <font color="comment">{$e->getLine()}</font>
                             >**文件:** <font color="red">{$e->getFile()}</font>
                             >**提示:** <font color="warning">{$e->getError()}</font>
                             >**信息:** <font color="warning">{$e->getMessage()}</font>"
                ]
            ];

            return Helper::postCurl(self::WEBHOOK, json_encode($data));
        }

        // 请求异常
        if ($e instanceof HttpException) {
            $data = [
                'msgtype' => 'markdown',
                'markdown' => [
                    'content' => "来自 **<font color="info">天眼</font>** 的温馨提醒,请相关同事注意。
                             >**描述:** <font color="comment">请求异常</font>
                             >**端IP:** <font color="comment">{$clientIP}</font>
                             >**地址:** <font color="comment">{$ipAddress}</font>
                             >**状态:** <font color="comment">{$e->getCode()}</font>
                             >**行数:** <font color="comment">{$e->getLine()}</font>
                             >**文件:** <font color="red">{$e->getFile()}</font>
                             >**信息:** <font color="warning">{$e->getMessage()}</font>"
                ]
            ];

            return Helper::postCurl(self::WEBHOOK, json_encode($data));
        }


        // 其他错误交给系统处理
        return parent::render($e);
    }
}

错误预警效果预览

1k 声望
641 粉丝
0 条评论
推荐阅读
最新版本 Stable Diffusion 开源 AI 绘画工具之中文自动提词篇
🎈 标签生成器由于输入正向提示词 prompt 和反向提示词 negative prompt 都是使用英文,所以对学习母语的我们非常不友好使用网址:[链接]这个网址是为了让大家在使用 AI 绘画的时候更容易去生成想要的提示词,支持...

tiny极客阅读 1.3k

封面图
Spring Boot整合Google Bard - Web接口访问Google AI聊天机器人
之前开发了一个关于Google Bard的Java库,可以帮助我们简单的提问并获得答案。现在我把它整合到Spring Boot应用中,通过Web API让大家可以访问。

南瓜慢说2阅读 969评论 2

playwright._impl._api_types.Error: Executable doesn't exist
在腾讯云服务器上安装插件时遇到,安装的插件名为“和风天气”和“b站用户信息查询”,解决方法:**发现安装目录 /ms-playwright/ 下只有个 INSTALLATION_COMPLETE。把安装目录 /ms-playwright/ 给清空了,然后用 pla...

奇天大郑阅读 1.1k

又发现了一个有趣的 ChatGPT 玩法,分享给大家
之前给大家写过如何将 ChatGPT 接入微信和钉钉,没看过的可以往公众号前面的文章翻翻,最近又发现了一个有趣的玩法,周末找时间实现了一下,感觉挺不错的,分享给大家。

Java极客技术阅读 939

封面图
手把手教你将 ChatGPT 接入企业微信
之前给大家介绍了如何将 ChatGPT 接入个人微信、钉钉以及知识星球,没看过的小伙伴可以点击链接进去看一下。但是众所周知,接入个人微信是有风险的,官方是不允许我们通过非法的客户端进行登录的。今天给大家分享...

Java极客技术阅读 869

封面图
地下环境 | 九种3D Lidar-SLAM算法评估
受在此类环境中实际部署自主机器人需求的启发,本文介绍了3D SLAM算法的实验比较研究。该研究侧重于具有开源实现的最先进的激光雷达SLAM算法,这些算法是

一点人工一点智能阅读 782

书籍推荐-《无人机集群网络:模型、协议和系统》
书籍: UAV Swarm Networks: Models, Protocols, and Systems作者: DongXiu Ou,Fei Hu,Xin-lin Huang出版: CRC Press原文地址: 书籍推荐-《无人机集群网络:模型、协议和系统》

一点人工一点智能阅读 719

1k 声望
641 粉丝
宣传栏