当需要通过 Eolinker Webhook 对接其他程序时,一般的流程是:
- 获取工作空间ID,和已知的工作空间ID对比,判断是否是来自 Eolinker 官方的请求,如果不是则忽略本次请求;
- 根据回调数据的 hook_product 字段,判断触发的产品;
- 根据回调数据的 hook_event 字段,判断触发的事件;
- 根据回调数据的 hook_operation 字段,判断触发的具体操作;
- 根据产品、事件、操作来获取content字段内的内容,进行后续处理;
- 返回字符串 ok 给 Eolinker Webhook,结束程序。
对接企业微信机器人群消息通知的主要步骤:
(1)在企业微信移动端,【获取 企业微信机器人-WebHook地址】
(2)在Eolinker管理后台【设置 Eolinker-WebHook地址】与【创建此脚本】
(3)在第二步的【Eolinker-WebHook脚本】中编写调用第一步中的【企业微信-WebHook服务】的脚本规则
详细教程:
一、获取企业微信机器人Webhook 服务地址
(1)打开企业微信群聊,点击右上角群设置-群机器人-添加机器人,编辑机器人名称
![](https://img2020.cnblogs.com/other/1506969/202103/1506969-20210305180938946-600288348.png)
![](https://img2020.cnblogs.com/other/1506969/202103/1506969-20210305180939154-1574425813.png)
![](https://img2020.cnblogs.com/other/1506969/202103/1506969-20210305180939517-940174335.png)
![](https://img2020.cnblogs.com/other/1506969/202103/1506969-20210305180939851-1489652896.png)
(4)复制保存“企业微信机器人-webhook“。【用作“二(3)”步骤中脚本填写的企业微信机器人调用地址】
![](https://img2020.cnblogs.com/other/1506969/202103/1506969-20210305180940067-265894379.png)
二、接下来进入Eolinker服务器后台(Linux)与系统管理员后台(Web)中【创建Eolinker-Webhook脚本】与【设置Eolinker-Webhook地址】
(1)连接服务器后台,进入eolinker_epc容器中的 eolinker_ams 目录中(安装目录)
docker exec -it eolinker_epc bash
cd /eolinker_ams
(2)创建文件如脚本文件(以php脚本为例):eo_wxwork_webhook.php,即文件位置与update.php同级
vi eo_wxwork_webhook.php
(3)编辑eo_wxwork _webhook.php脚本,(以调用API研发管理-监测切换 API 状态为例)
详细代码示例如下:
(红框为需要修改的地方)
![](https://img2020.cnblogs.com/other/1506969/202103/1506969-20210305180940328-1582442791.png)
'text',
'text' => [
'content' => $text,
]
];
//判断如果产品为API研发管理 且 事件为API文档 且 操作为切换api状态 则 请求【第(一、4)步中拿到的企业微信机器人webhook地址】进行调用,填写到【 CURLOPT_URL 】中
if($eo_hook['hook_product'] == 'api_management' && $eo_hook['hook_event'] == 'api_document' && $eo_hook['hook_operation'] == 'switch_api_status'){
//调用
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxx",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => array(
"Content-Type:application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
}
(4)编写完脚本后 输入 :wq 保存内容
(5)进入eolinker管理后台-Webhook-点击新建服务调用
![](https://img2020.cnblogs.com/other/1506969/202103/1506969-20210305180940573-1454726246.png)
(6)填写 回调地址。通知URL填写内容:私有云访问地址、服务器ip 加上 脚本名(eo_wxwork_webhook.php)
![](https://img2020.cnblogs.com/other/1506969/202103/1506969-20210305180940751-1726112372.png)
点击确定后,如弹出地址错误,则需要检查以下原因:
填写的通知地址是否成功创建了此脚本文件
访问地址、文件名填写是否有误
服务器文件权限、链接重定位问题
(7)最后改变api的状态,测试效果:
![](https://img2020.cnblogs.com/other/1506969/202103/1506969-20210305180940964-1833295711.png)
![](https://img2020.cnblogs.com/other/1506969/202103/1506969-20210305180941319-840802320.png)
详细参考
(1)企业微信自定义机器人:
https://work.weixin.qq.com/help?person_id=1&doc_id=13376#如何使用群机器人/如何使用群机器人
(2)Eolinker_使用:
[https://www.eolinker.com/](https://datayi.cn/w/4PKKyLxP)