当需要通过 Eolinker Webhook 对接其他程序时,一般的流程是:

  1. 获取工作空间ID,和已知的工作空间ID对比,判断是否是来自 Eolinker 官方的请求,如果不是则忽略本次请求;
  2. 根据回调数据的 hook_product 字段,判断触发的产品;
  3. 根据回调数据的 hook_event 字段,判断触发的事件;
  4. 根据回调数据的 hook_operation 字段,判断触发的具体操作;
  5. 根据产品、事件、操作来获取content字段内的内容,进行后续处理;
  6. 返回字符串 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);

//企业微信机器人需要打印的内容
$text = "Eolinker API 状态通知:".PHP_EOL."API变更状态:".$eo_hook'content'0.PHP_EOL."API名称:".$eo_hook['content']['api_list'][0]['api_name'].PHP_EOL."工作空间名称:".$eo_hook['space_name'].PHP_EOL."修改时间:".$eo_hook['hook_request_time'].PHP_EOL."修改人:".$eo_hook['hook_operator'].PHP_EOL."api_uri:".$eo_hook'content'0;
$data = [

'msgtype' => '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-点击新建服务调用

(6)填写 回调地址。通知URL填写内容:私有云访问地址、服务器ip 加上 脚本名(eo_wxwork_webhook.php)

点击确定后,如弹出地址错误,则需要检查以下原因:
 填写的通知地址是否成功创建了此脚本文件
 访问地址、文件名填写是否有误
 服务器文件权限、链接重定位问题

(7)最后改变api的状态,测试效果:

详细参考

(1)企业微信自定义机器人:
https://work.weixin.qq.com/he...

(2)Eolinker_使用:
https://www.eolinker.com/


Kit2023
44 声望4 粉丝

API Easy & Open for you