本文主要向大家介绍了机器人之钉钉机器人webhook 对接 ThinkPHP3.2 实现Bug告警通知,通过具体的内容向大家展现,希望对大家学习机器人有所帮助。

前言:

为什么写这篇文章?

原因如下:

项目告警多通过SMS、mail 等方式通知到相应的人员,现在钉钉出了个webhook机器人接入,自定义的机器人支持Post 告警消息到群里,支持更多可能性。

详情可以参考钉钉开发官网文档:

https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.Dq3B2b&treeId=257&articleId=105735&docType=1

下面我们来学习下 ThinkPHP3.2中实现 通过钉钉机器人webhook 发送异常信息到 群里。

一、我们新建的第三方类库DingTalk放到Vendor目录下,

在Vendor目录下新建DingTalk目录, 同时在DingTalk目录下新建  Corefunction.php文件(发送异常消息的类文件)和 GetApiData.php文件(钉钉机器人接口公用函数);

Corefunction.php 文件的内容如下:

/* *

* 钉钉机器人接口公用函数

* 详细:该类是请求、通知返回两个文件所调用的公用函数核心处理文件

* 日期:2018-01-16

* 该代码仅供学习使用,只是提供一个参考。

*/

/**

* 远程获取数据,POST模式

* @param $remote_server 机器人对应的Webhook地址

* @param $post_string   发送的内容

* return 远程输出数据

*/

function request_by_curl($remote_server, $post_string) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $remote_server);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

curl_setopt($ch, CURLOPT_HTTPHEADER, array ('Content-Type: application/json;charset=utf-8'));

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 线下环境不用开启curl证书验证, 未调通情况可尝试添加该代码

// curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);

// curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

?>

Corefunction.php 文件的内容如下:

/**

* 类名:GetApiData

* 功能:钉钉机器人webhook接口请求提交类

* 该代码仅供学习使用,只是提供一个参考。

**/

class GetApiData {

protected $files = '';

protected $line = '';

protected $message = '';

protected $trace = '';

public function __construct($files, $line, $messag, $trace){

$this->files   = $files;

$this->line    = $line;

$this->message = $message;

$this->trace   = $trace;

}

public function abnormalRemind()  {

$clientIp = getenv('REMOTE_ADDR');

$all_message = "## 某某项目异常提醒\n\n"

."> clientIp: $clientIp \n\n"

."> file: $this->file \n\n"

."> line: $this->line \n\n"

."> message: $this->message \n\n"

."> trace: $this->trace";

$remote_server = C('DING_TALK_API');     # 从config.php 取 Webhook地址(https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx)

$content = json_encode(markdown('异常提醒', $all_message));

request_by_curl($remote_server , $content);

return true;

}

/* *

* 定义消息类型(markdown)及消息数据

*/

protected function markdown($title, $message){

$data = array (

'msgtype' => 'markdown',

'markdown' => array (

'title' => $title,

'text' => $message

)

);

return $data;

}

二、在ThinkPHP系统内置的异常模板在系统目录的 Tpl/think_exception.tpl 中调用异常类,实现 项目异常消息推送到 钉钉群; 在Tpl/think_exception.tpl 下 加入的代码如下所示:

Vendor('DingTalk.GetApiData');

$file = $e['file'];

$line = $e['line'];

$trace = nl2br($e['trace']);

$message = strip_tags($e['message']);

$msg = new \GetApiData($file, $line, $message, $trace);

$msg->abnormalRemind();

?>

三、异常提醒如下图所示:

小结:

钉钉 webhook机器人可以实现消息推送到钉钉群里 , 自定义机器人支持文本(text)、连接(link)、markdown(markdown)三种消息类型。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能智能机器人频道!

webhook机器人php源码,机器人之钉钉机器人webhook 对接 ThinkPHP3.2 实现Bug告警通知...相关推荐

  1. 微信公众平台开发教程(四) 实例入门:机器人(附源码)

    微信公众平台开发教程(四) 实例入门:机器人(附源码) 上一篇文章,写了基本框架,可能很多人会觉得晕头转向,这里提供一个简单的例子来予以说明,希望能帮你解开谜团. 一.功能介绍 通过微信公众平台实现在 ...

  2. 智能聊天机器人实现(源码+解析)

    前言: 之前写了一篇  <美女图片采集器 (源码+解析)> 得到了众多朋友的支持, 发现这样系列的教程还是挺受欢迎的, 也激励我继续写下去. 也在那一篇文章中提过, 美女图片采集只是我先前 ...

  3. 智能聊天机器人实现(源码+析)

    前言: 今天带来的是智能聊天机器人实现(源码+解析), 和上一篇教程一样, 当你没有女朋友的时候, 可以用它来打发时间.这里的API是图灵机器人提供的, 实现一个十分强大的机器人. 具体功能包括: • ...

  4. 大圣公众号机器人APP后台可控机器人部分源码

    大圣公众号机器人APP后台可控机器人部分源码支持二次开发二开已修复运营级

  5. 开发外呼机器人用源码是您的不二之选

    开发外呼机器人用源码是您的不二之选智能電話机器人作为当今的一款智能化产品,在实际应用中能准确的以人类的声音.思维和语气智能应对客户提出的各种问题. 2018是人工智能飞速发展的一年,率先与人工智能牵手 ...

  6. 最新开源ai智能写作机器人系统源码 电脑版+手机版+搭建教程

    分享一个最新开源版的ai智能写作机器人系统源码,带电脑版和手机版,含详细的搭建教程. 系统功能:可以聊天,写文章,写论文,写代码,写小说,创意策划,做Excel表格,写诗等等,根据上下文语境陪你聊天, ...

  7. 智能聊天机器人实现 源码+解析

    前言: 今天带来的是智能聊天机器人实现(源码+解析), 和上一篇教程一样, 当你没有女朋友的时候, 可以用它来打发时间.这里的API是图灵机器人提供的, 实现一个十分强大的机器人. 具体功能包括: • ...

  8. abb机器人码垛编程详解_ABB机器人IRB460机器人完成双工位码垛任务编程——ABB机器人...

    ABB机器人IRB460机器人完成双工位码垛任务编程--ABB机器人 ABB机器人码垛程序中断初始化,当右侧满载码盘单位信号变为0时,即表示满载码盘被取走,则触发中邮程序lleR.复位右侧满载信号.满 ...

  9. 云商城云小店官网源码-修复30套模板支持一键对接各大系统

    简介: 云小店商城源码修复30套模板支持一键对接各大系统,需PHP7.2以下 上传源码后提示数据库连接错误的,先安装一下 访问:http://你的域名/install进行安装 默认后台地址: 域名/a ...

  10. 8月收到的最新更新附近的人交友系统源码,自动打招呼,自动发视频通话+自动聊天多功能机器人交友源码

    交友和里面直播用的不是一个编码,所以会导致点直播 查看更多关于 直播 的文章 会乱码,自己直接转账下编码就行,一个gb,一个utf8 测试环境:nginx1.16+php5.6+mysql5.6 /z ...

最新文章

  1. 应用程序启动器 标记为信任_为什么您今天不能信任应用程序-以及如何解决它...
  2. winstore独立安装包下载_QT使用教程(二)之下载篇
  3. Fedora 17 下安装codeblocks
  4. phpMyAdmin安全配置
  5. 《Elasticsearch in Action》书评与作者访谈
  6. MFC文档/视图结构体系及SDI回顾(2)
  7. tomcat 执行一个web请求的过程
  8. 中午xxx遭受攻击,然后发现C盘空间体积缩小,发现该目录占用1G多,全部是站点
  9. 联发科梦碎高端化:2015年净利恐降4成股价腰斩
  10. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]
  11. Linux指纹识别程序,linux上应用指纹识别(转载)
  12. 构筑基于物联网操作系统的物联网生态环境【转】
  13. let var const的区别
  14. 怎么用服务器跑matlab程序,服务器上跑matlab程序
  15. 微信联系人一键导出的方法在这里
  16. 怎么恢复服务器上刚刚删除的文件,怎样恢复刚刚删除的文件 详细教程分享【图解】...
  17. 华为手机鸿蒙系统官方下载入口,华为鸿蒙系统升级入口
  18. calipso是什么意思_library是什么意思_library的翻译_音标_读音_用法_例句_爱词霸在线词典...
  19. 大数据服务模型设计:默默无闻的贤内助
  20. pandownload使用cookie登录

热门文章

  1. 身份认证 对称密钥的认证协议 公开密钥的认证协议 公钥基础设施PKI
  2. CPU使用率和负载Load计算方法
  3. default、mms、supl、dun、hipri接入点类型的区别
  4. ES基于Hbase二级索引
  5. 频谱泄漏(spectral leakage)
  6. 微信逆向:如何统计好友添加数据和聊天记录数据?
  7. C++ Primer 5th ed.pdf
  8. 计算机基础多选试题及答案,计算机基础试题及答案
  9. C语言中求大于M10个最大素数,全国计算机二级C语言上机题库—南开100题
  10. 磁共振成像技术发展简史丨科学史