【Eolinker使用】通過(guò)Webhook推送API變更通知到企業(yè)微信

當(dāng)需要通過(guò) Eolinker Webhook 對(duì)接其他程序時(shí),一般的流程是:

  1. 獲取工作空間ID,和已知的工作空間ID對(duì)比,判斷是否是來(lái)自 Eolinker 官方的請(qǐng)求,如果不是則忽略本次請(qǐng)求;
  2. 根據(jù)回調(diào)數(shù)據(jù)的 hook_product 字段,判斷觸發(fā)的產(chǎn)品;
  3. 根據(jù)回調(diào)數(shù)據(jù)的 hook_event 字段,判斷觸發(fā)的事件;
  4. 根據(jù)回調(diào)數(shù)據(jù)的 hook_operation 字段,判斷觸發(fā)的具體操作;
  5. 根據(jù)產(chǎn)品、事件、操作來(lái)獲取content字段內(nèi)的內(nèi)容,進(jìn)行后續(xù)處理;
  6. 返回字符串 ok 給 Eolinker Webhook,結(jié)束程序。

對(duì)接企業(yè)微信機(jī)器人群消息通知的主要步驟:
(1)在企業(yè)微信移動(dòng)端,【獲取 企業(yè)微信機(jī)器人-WebHook地址】
(2)在Eolinker管理后臺(tái)【設(shè)置 Eolinker-WebHook地址】與【創(chuàng)建此腳本】
(3)在第二步的【Eolinker-WebHook腳本】中編寫(xiě)調(diào)用第一步中的【企業(yè)微信-WebHook服務(wù)】的腳本規(guī)則

詳細(xì)教程:
一、獲取企業(yè)微信機(jī)器人Webhook 服務(wù)地址
(1)打開(kāi)企業(yè)微信群聊,點(diǎn)擊右上角群設(shè)置-群機(jī)器人-添加機(jī)器人,編輯機(jī)器人名稱





(4)復(fù)制保存“企業(yè)微信機(jī)器人-webhook“?!居米鳌岸?)”步驟中腳本填寫(xiě)的企業(yè)微信機(jī)器人調(diào)用地址】


二、接下來(lái)進(jìn)入Eolinker服務(wù)器后臺(tái)(Linux)與系統(tǒng)管理員后臺(tái)(Web)中【創(chuàng)建Eolinker-Webhook腳本】與【設(shè)置Eolinker-Webhook地址】
(1)連接服務(wù)器后臺(tái),進(jìn)入eolinker_epc容器中的 eolinker_ams 目錄中(安裝目錄)

docker exec -it eolinker_epc bash
cd /eolinker_ams

(2)創(chuàng)建文件如腳本文件(以php腳本為例):eo_wxwork_webhook.php,即文件位置與update.php同級(jí)

vi eo_wxwork_webhook.php

(3)編輯eo_wxwork _webhook.php腳本,(以調(diào)用API研發(fā)管理-監(jiān)測(cè)切換 API 狀態(tài)為例)

詳細(xì)代碼示例如下:
(紅框?yàn)樾枰薷牡牡胤剑?/p>

<?php
//獲取eolinker發(fā)送的信息,轉(zhuǎn)成數(shù)組格式
$eo_hook = json_decode(file_get_contents("php://input"),1);

//企業(yè)微信機(jī)器人需要打印的內(nèi)容
text = "Eolinker API 狀態(tài)通知:".PHP_EOL."API變更狀態(tài):".eo_hook['content']['api_list'][0]['api_status'].PHP_EOL."API名稱:".eo_hook['content']['api_list'][0]['api_name'].PHP_EOL."工作空間名稱:".eo_hook['space_name'].PHP_EOL."修改時(shí)間:".eo_hook['hook_request_time'].PHP_EOL."修改人:".eo_hook['hook_operator'].PHP_EOL."api_uri:".eo_hook['content']['api_list'][0]['api_uri'];data = [
'msgtype' => 'text',
'text' => [
'content' => text, ] ]; //判斷如果產(chǎn)品為API研發(fā)管理 且 事件為API文檔 且 操作為切換api狀態(tài) 則 請(qǐng)求【第(一、4)步中拿到的企業(yè)微信機(jī)器人webhook地址】進(jìn)行調(diào)用,填寫(xiě)到【 CURLOPT_URL 】中 if(eo_hook['hook_product'] == 'api_management' && eo_hook['hook_event'] == 'api_document' &&eo_hook['hook_operation'] == 'switch_api_status'){
//調(diào)用
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)編寫(xiě)完腳本后 輸入 :wq 保存內(nèi)容

(5)進(jìn)入eolinker管理后臺(tái)-Webhook-點(diǎn)擊新建服務(wù)調(diào)用


(6)填寫(xiě) 回調(diào)地址。通知URL填寫(xiě)內(nèi)容:私有云訪問(wèn)地址、服務(wù)器ip 加上 腳本名(eo_wxwork_webhook.php)


點(diǎn)擊確定后,如彈出地址錯(cuò)誤,則需要檢查以下原因:
? 填寫(xiě)的通知地址是否成功創(chuàng)建了此腳本文件
? 訪問(wèn)地址、文件名填寫(xiě)是否有誤
? 服務(wù)器文件權(quán)限、鏈接重定位問(wèn)題

(7)最后改變api的狀態(tài),測(cè)試效果:



詳細(xì)參考

(1)企業(yè)微信自定義機(jī)器人:
https://work.weixin.qq.com/help?person_id=1&doc_id=13376#如何使用群機(jī)器人/如何使用群機(jī)器人

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容