前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >企业微信,实现群机器人监控线上服务报警

企业微信,实现群机器人监控线上服务报警

作者头像
泥豆芽儿 MT
发布2022-06-27 13:09:27
1.3K0
发布2022-06-27 13:09:27
举报
  • 背景 近期在对项目优化过程中 注意到:当前的报警信息都是通过邮件发送,一方面时效性比较低,另外实现方式比较复杂 通过同事,了解到 企业微信群机器人 实现起来简洁方便 在此,记录一下我的实现步骤 欢迎指摘 …

【注】: 当前为 PHP 实现方式,可根据自己的语言灵活对接

详细描述,请参考开发文档: 【 >>>如何使用群机器人 】

  • 如何使用群机器人
代码语言:javascript
复制
在终端某个群组添加机器人之后,
创建者可以在机器人详情页看的该机器人特有的 webhookurl
开发者可以按以下说明向这个地址发起 HTTP POST 请求,即可实现给该群组发送消息

▷ 前期配置

  • ① 首先 在已创建的企业微信群页面,点击 "添加群机器人" 操作截图如下:
  • ② 添加完成后,可复制地址,用于业务接口的调用

注意:

一定要保护好机器人的 webhook地址,避免泄漏!不要分享到github、博客等可被公开查阅的地方,否则坏人就可以用你的机器人来发垃圾消息了。

▷ PHP 代码实现

  • ① 代码接入:微信群消息,封装类 WechatMessageService
代码语言:javascript
复制
class WechatMessageService
{
    /**
     * Note: 企业微信群 机器人消息通知
     * @param string $robot_url webhook地址
     * @param string $content 发送内容
     * @param string $msg_type 消息类型
     * @return mixed|string
     */
    public static function sendWechatRobotMsg($robot_url = '', $content = '' , $msg_type = 'text')
    {
        $post_data = [
            'msgtype' => $msg_type,
            'text' => [
                'content' => $content,
            ],
            'markdown' => [
                'content' => $content,
            ],
        ];

        $result = http_request($robot_url, json_encode($post_data,JSON_UNESCAPED_UNICODE));
        $result_arr = json_decode($result, true);

        $errcode = $result_arr['errcode'] ?? '0'; // 0:成功
        return $errcode;
    }
}
  • ② 调用示例:
代码语言:javascript
复制
    //测试推送消息
	$msg = '你好啊,时间:'.date('Y-m-d H:i:s',time());
	//机器人的 webhook地址
	$robot_url = '替换掉机器人的 webhook地址';
	WechatMessageService::sendWechatMsg($robot_url, $msg); //发送企业微信通知
  • ③ 接口调用,结果:

▷ 附录:

  1. 其他的监控实现,可参考文章:【用企业微信监控线上服务报警】
  2. markdown 类型的样式实现 当前测试,只是做了最简单的 文字推送, 可以根据自己的业务需求,阅读开发文档,设计更为合理的 消息类型, 此处补充一下 markdown类型的消息

在这里插入图片描述
在这里插入图片描述
  1. 公共方法,补充一下方便参考使用:
代码语言:javascript
复制
function http_request($url, $data = null, $header = [])
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

        if (!empty($data)) {
            curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        $output = curl_exec($curl);
        curl_close($curl);
        return $output;
    }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ▷ 前期配置
  • ▷ PHP 代码实现
  • ▷ 附录:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档