微信端个人消息推送方案

wylc123 1年前 ⋅ 572 阅读

简单说明

消息推送需求,服务器监控、系统发布、爬虫执行等等这些情况都可能用到消息推送,消息推送要尽量保证实时及成功,之前用过这些方案:

  • 邮件,使用微信绑定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源点


相关文章推荐

全部评论: 0

    我有话说: