https://qy.weixin.qq.com/ 企業號注冊
http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5 微信調用接口說明
http://qydev.weixin.qq.com/debug 微信企業號接口調試地址
http://qydev.weixin.qq.com/debug 微信企業號接口調試地址
一、首先申請企業公眾號
二、獲取AccessToken
使用微信,應該最重要的就是這個了,下面是如何獲取他,在他的接口文檔中,有說明:

首先測試一下,看通過接口調試工具,如何獲取Access_Token: 根據自己的corpid和corpsecret獲取AccessToken

會返回一個結果:

那么如何通過命令行獲取呢,那就是根據上面文檔的get請求的地址: 執行這條命令就可以獲得
/usr/bin/curl -s -G https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=xxxx&corpsecret=xxxx |awk -F\":'{print $4}'|awk -F\" '{print $2}'
獲得這個值,然后就可以通過他發送消息了,發送接口說明:把剛剛上面獲得的AccessToken傳給下面這個紅色框框的ACCESS_TOKEN地方

三、編寫腳本,實現微信的發送
部門ID,應用ID,CorpID,Secret,然后根據CorpID和Secret獲得access_token,然后根據微信提供的接口文檔進行獲取就可以了
#!/bin/bash #set -x CorpID="xxxxx" Secret="xxxxx" GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret" Token=$(/usr/bin/curl -s -G $GURL |awk -F\":'{print $4}'|awk -F\" '{print $2}') echo $Token PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token" UserID=$1 PartyID=2 agentid=1 Msg=$(echo "$@"|cut -d" "-f1-)
message(){ printf '{\n' printf '\t"touser": "'"$UserID"\"",\n" printf '\t"toparty": "'"$PartyID"\"",\n" printf '\t"msgtype": "text",\n' printf '\t"agentid": "'"$agentid"\"",\n" printf '\t"text": {\n' printf '\t\t"content": "'"$Msg"\""\n" printf '\t},\n' printf '\t"safe":"0"\n' printf '}\n' } /usr/bin/curl --data-ascii "$(message $1 $2 $3)" $PURL
這個腳本可以先sh webcat.sh 001 aa bb 先測試一下,看是否成功
這里的message是有格式說明的:
他的發送消息格式一定要按照他的文檔要求來
touser:成員ID列表,多個用|分開
toparty:部門ID列表
msgtype:消息的類型text(支持消息型應用跟主頁型應用)
agentid:企業應用ID號
content:消息內容
safe:是否保密消息,0表示否,1表示是,默認為0
通俗的話理解:
1)通過get請求地址,根據自己的corid和secret獲取Access Token
2)把獲取的Access Token傳遞給post地址的ACCESS_TOKEN參數
3)然后使用規定的文本格式通過curl 發送出去
四:zabbix設置,和添加郵件一樣,有幾點注意事項
1:添加報警媒介類型,這里的參數是要傳遞到腳本里去的

2:用戶添加微信報警 收件人寫

3:添加動作,在操作細節的時候選擇微信報警

獲得的結果:

若發送不成功,首先可以通過zabbix的動作日志看他是否成功
若這里顯示的是發送成功,然后又沒有收到微信消息,那么很有可能是微信的Access Token的問題,我的辦法是重新獲取secret