当需要通过 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)打开企业微信群聊,点击右上角群设置-群机器人-添加机器人,编辑机器人名称
(4)复制保存“企业微信机器人-webhook“。【用作“二(3)”步骤中脚本填写的企业微信机器人调用地址】
二、接下来进入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 状态为例)
详细代码示例如下:
(红框为需要修改的地方)
<?php
//获取eolinker发送的信息,转成数组格式
$eo_hook = json_decode(file_get_contents("php://input"),1);
//企业微信机器人需要打印的内容
eo_hook['content']['api_list'][0]['api_status'].PHP_EOL."API名称:".eo_hook['space_name'].PHP_EOL."修改时间:".eo_hook['hook_operator'].PHP_EOL."api_uri:".data = [
'msgtype' => 'text',
'text' => [
'content' => eo_hook['hook_product'] == 'api_management' && eo_hook['hook_operation'] == 'switch_api_status'){
//调用
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-点击新建服务调用
(6)填写 回调地址。通知URL填写内容:私有云访问地址、服务器ip 加上 脚本名(eo_wxwork_webhook.php)
点击确定后,如弹出地址错误,则需要检查以下原因:
填写的通知地址是否成功创建了此脚本文件
访问地址、文件名填写是否有误
服务器文件权限、链接重定位问题
(7)最后改变api的状态,测试效果:
详细参考
(1)企业微信自定义机器人:
https://work.weixin.qq.com/help?person_id=1&doc_id=13376#如何使用群机器人/如何使用群机器人
(2)Eolinker_使用:
https://www.eolinker.com/