shell或python呼叫企業微信傳送訊息(實現報警功能)
阿新 • • 發佈:2018-12-03
shell或python呼叫企業微信傳送訊息(實現報警功能)
官方文件
企業內部開發
簡易教程:https://work.weixin.qq.com/api/doc#90000/90003/90487
服務端API:https://work.weixin.qq.com/api/doc#90000/90135/90664
註冊登陸企業微信
登入企業微信管理端 -> 應用與小程式 -> 應用 -> 自建,點選“建立應用”,設定應用log、應用名稱等資訊,建立應用。
建立完成後,在管理端的應用列表裡進入該應用,可以看到agentid、secret等資訊,這些資訊在使用企業微信API時會用到。
建立完成後,該應用會自動出現在可見範圍內的成員的企業微信終端上(包括手機端、pc端、微工作臺)
shell指令碼
#!/bin/bash # shell呼叫企業微信傳送訊息命令 # ./weixin.sh ${人員} "訊息" # 例: # ./weixin.sh @all "hello!" # ./weixin.sh maYun "hello!" # 注: # 訊息中可以使用"\n"表示換行; # 訊息中不可以使用空格; # 微信介面引數 # 根據自己申請的企業微信上介面引數調整; corpid='XXXXXXXXXXXXXXXXXX' appsecret='XXXXXXXXXXXXXXXXXX' agentid=XXXXXXX #獲取accesstoken accesstoken=$(/usr/bin/curl https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=${corpid}\&corpsecret=${appsecret} | jq -r '.access_token') #傳送訊息 msgsend_url="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=${accesstoken}" json_params="{\"touser\":\"${1}\",\"msgtype\":\"text\",\"agentid\":\"${agentid}\",\"text\":{\"content\":\"${2}\"},\"safe\":\"0\"}" echo -e "\n${json_params}" #/usr/bin/curl -X POST ${msgsend_url} -d ${json_params} | jq -r '.errcode' /usr/bin/curl -X POST ${msgsend_url} -d ${json_params}
python指令碼
#!/usr/bin/env python3 #-*- coding: utf-8 -*- # python呼叫企業微信傳送訊息命令 # 傳送訊息命令 # python weixin.py ${人員} 主題 正文 # 例如: # python3 weixin.py maYun a b # ./weixin.py maYun n m # 說明;當一個變數含有多個值或者含有空格、回車符號時,可以使用雙引號。 # 當通知所有使用者時可以把使用者引數設定成"@all" import requests import sys import os import json import logging # 日誌模組 logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s', datefmt = '%a, %d %b %Y %H:%M:%S', filename = os.path.join('/tmp','weixin.log'), filemode = 'a') # 微信介面引數 # 根據自己申請的企業微信上介面引數調整; corpid='XXXXXXXXXXXXXXXXXX' appsecret='XXXXXXXXXXXXXXXXXX' agentid=XXXXXXX #獲取accesstoken token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret req=requests.get(token_url) accesstoken=req.json()['access_token'] #傳送訊息 msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken touser=sys.argv[1] subject=sys.argv[2] #toparty='3|4|5|6' message=sys.argv[2] + "\n\n" +sys.argv[3] params={ "touser": touser, # "toparty": toparty, "msgtype": "text", "agentid": agentid, "text": { "content": message }, "safe":0 } req=requests.post(msgsend_url, data=json.dumps(params)) # 寫日誌 logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)