yearning訂閱webhook傳送到企業微信個人或群(思路)

二师弟tl發表於2024-07-18

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和企業微信使用者名稱,推送企業微信要求的格式到企業微信個人

相關文章