yearning的預設webhook格式支援釘釘,預設格式不支援企業微信。本文的目的是講工單流程節點變更通知到企業微信個人或群。
本文假設讀者已具備以下技能
1、python flask
2、企業微信介面對接
1)到群比較簡單,直接轉到指定URL即可
2)到個人,需要指令碼內換access_token,並且需要有效期內快取token,企微token有次數限制
實現的步驟:
1、使用python寫一個http監聽代理
2、代理程式內轉換webhook報文為企業微信支援的格式
3、轉發給企業微信
訊息轉發流程:
yearing → 代理指令碼監聽器 → 企業微信
from flask import Flask, request @app.route("/webhook/event", methods=['POST']) def event(): try: logger.info('收到Yearning的推送:' + urllib.parse.unquote(request.data)) # 轉換json格式為企業微信需要的markdown格式,詳細見企業微信官方文件
# 轉到企業微信
app.run(host=HOST, port=PORT, debug=False)
Yearning的webhook地址配置: http://HOST:PORT/webhook/event
轉到群的步驟
在企業微信群裡,新增機器人,即可得到一個 webhook推送地址,此地址無需token,可直接post
轉到個人的步驟:
1、獲取企業微信的access token並快取token
2、根據報文裡的下一人員和提交人員(此處是yearing的登入使用者名稱),得到企業微信裡的個人使用者名稱(可透過企業微信部門介面獲取成員名單)
3、yearning的使用者名稱和企業微信的使用者名稱對應關係需要自己先對應好,寫在庫裡,簡單的話寫在指令碼里頁可以,人員新入職記得新增使用者名稱對應關係
4、根據token和企業微信使用者名稱,推送企業微信要求的格式到企業微信個人