简单说明
消息推送需求,服务器监控、系统发布、爬虫执行等等这些情况都可能用到消息推送,消息推送要尽量保证实时及成功,之前用过这些方案:
- 邮件,使用微信绑定QQ或者企业邮箱接收消息
- 自己写APP集成极光等推送平台
- Server酱
自己可以APP可以灵活控制消息格式,但是APP包活是主要问题;Server酱
通过微信发送可以保证到达及实时性,简单消息个人一直使用Server
酱发送,缺点是消息格式单一
企业微信方案
这个方案无需安装企业微信APP,使用普通微信就可以接收消息,而且消息格式支持文本、图片、音频、视频、Markdown等。
注册企业微信
注册地址: https://work.weixin.qq.com/wework_admin/register_wx,注册后无需企业认证即可使用推送(当然只能推送给自己)
关注微工作台
路径:我的企业 -> 微工作台 -> 邀请关注
创建应用
发送消息需要使用发送应用消息
接口,先创建应用:应用与小程序 -> 创建应用,需要应用的 AgentId
用于后续消息推送,网页控制台可以手动发送消息进行测试。
发送消息
消息发送接口:发送应用消息,发送消息前需要获取 ACCESS_TOKEN
shell 发送简单消息
agentid 替换成之前创建应用的
#!/bin/bash
main() {
check $@
TOKEN=`curl -s "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CORP_ID&corpsecret=$CORP_SECRET" | jq -r ".access_token"`
curl -X POST -d '{
"touser": "@all",
"msgtype": "text",
"agentid": 1000002,
"text": {
"content": "'$@'"
},
"safe": 0
}' "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$TOKEN"
}
check() {
if [[ -z "${CORP_ID}" ]]; then
echo "Error: missing environment variable CORP_ID"
exit 1
fi
if [[ -z "${CORP_SECRET}" ]]; then
echo "Error: missing environment variable CORP_SECRET"
exit 1
fi
command -v jq >/dev/null 2>&1 || {
echo "Error: jq is not installed"
exit 1
}
if [ "$#" -eq 0 ]; then
echo "Illegal number of parameters.\nUsage: ./notify.sh <message>"
exit 1
fi
}
main $@
发送复杂消息
接口支持发送文本、图片、语音、视频、文件、文本卡片等,我用 go 写的工具简单封装了这个接口,可以方便的使用。
来源:IT源点
注意:本文归作者所有,未经作者允许,不得转载