网站LOGO
逐暗者的麦田
页面加载中
3月29日
网站LOGO 逐暗者的麦田
一个java软件攻城狮
菜单
  • 热评
    用户的头像
    首次访问
    上次留言
    累计留言
    我的等级
    我的角色
    打赏二维码
    打赏博主
    自建自用的微信推送服务
    点击复制本页信息
    微信扫一扫
    文章二维码
    文章图片 文章标题
    创建时间
  • 一 言
    确认删除此评论么? 确认
  • 本弹窗介绍内容来自,本网站不对其中内容负责。
    按住ctrl可打开默认菜单

    自建自用的微信推送服务

    shellingford · 原创 ·
    程序人生 · 推送
    共 2492 字 · 约 2 分钟 · 772
    本文最后更新于2023年08月05日,已经过了237天没有更新,若内容或图片失效,请留言反馈

    背景

    需求

    当拥有自己的云服务器、树莓派等软硬件时,总会希望在特定事件产生时收到一些推送消息给自己。例如无屏幕的树莓派开始时发送IP信息给自己;云服务器流量、cpu高峰时发送警告消息给自己。

    要求

    1. 采用方便快捷的消息接收方式:微信。(邮件可能不及时,其他推送又需要安装多余的app,反正手机上装了微信,就用微信的信息推送)
    2. 没有推送条数、推送内容上的限制。(消息要提前生成模板审核?不存在的!)
    3. 利用手上的资源(云服务器一个),没有额外的费用。(例如消息推送费用)

    别人的服务

    在寻找类似的推送服务时,看到了server酱。接入方便,使用上符合要求1 。不过由于vip制度的关系,存在一些费用,又无法做定制化的处理。所以便希望自己搭建一套简单易用的推送服务来。

    自建服务

    原理

    微信、无认证的微信公众号都不提供针对个人定制化的消息推送功能。所以只能绕道企业微信来实现了。企业微信拥有推送API,并且允许成员通过微信来接收企业微信的消息。如此一来我们就可以通过企业微信进行消息推送,通过微信来接收消息,整个使用过程中并不需要手机安装企业微信APP

    推送消息推送消息

    准备资源

    个人云服务器

    1. 云服务器或者虚拟空间都可以。
    2. 云服务器的话需要安装好web服务,例如lnmp等都可以,本人采用的是nginx+java+mysql。

    企业微信

    1. 申请企业微信账号。个人用户都可以注册,并不需要什么认证,随便开通一个即可。通过web页面就可以注册,不需要手机上安装APP。
    2. 获取企业微信账号id。进入后台管理页面 -> 我的企业 -> 企业信息 -> 企业ID
      企业ID企业ID
    3. 创建应用。应用管理->应用->创建应用。
      创建应用创建应用
    4. 获取应用AgentId和Secret
      应用秘钥应用秘钥
    5. 打开微信接收企业微信消息设置。我的企业->微信插件
      设置设置

      api接口

    6. 通过企业id+应用Secret获取token。这个接口不能频繁请求,在token有效期内不建议重复请求。详见API文档
    7. 通过已经获取的token+应用AgentId调用发送消息API

    云服务器部分代码

    • 获取token

      java 代码:
            Map<String,String> param = new HashMap<>();
            param.put("corpid", corpid);
            param.put("corpsecret",corpsecret);
            WeChatTokenResponse response = HttpUtil.doGetHttp(QY_TOKEN_URL,"请求企业微信token",param, WeChatTokenResponse.class);
    • 发送应用消息
    java 代码:
            JSONObject json = new JSONObject();
            json.put("touser","@all");
            json.put("msgtype","text");
            json.put("agentid",agentid);
            JSONObject contentJson = new JSONObject();
            contentJson.put("content",content);
            json.put("text",contentJson);
            return  HttpUtil.doPostHttp(QY_MSG+token,"发送企业微信信息",json.toJSONString(), WeChatResponse.class);

    效果


    备注

    • 企业微信发送应用消息API文档
    • linux+nginx+mysql+php环境。
    声明:本文由 shellingford(博主)原创,依据 CC-BY-NC-SA 4.0 许可协议 授权,转载请注明出处。

    还没有人喜爱这篇文章呢

    现在已有

    1

    条评论
    发一条!
    1. 头像
      路人
      头像 路人
      • 等级:Lv.1
      • 角色:访客
      • 在线:很久之前

      企业微信现在要求实名认证的域名和ip白名单了..

      · · · 上海-上海
    博客logo 逐暗者的麦田 一个java软件攻城狮
    MOEICP 萌ICP备20237379号 ICP 沪ICP备13037081号-2,沪ICP备13037081号-1,沪ICP备13037081号-3 又拍云 本站由又拍云提供CDN加速/云存储服务

    🕛

    本站已运行 2 年 216 天 0 小时 21 分

    🌳

    自豪地使用 Typecho 建站,并搭配 MyLife 主题
    逐暗者的麦田. © 2021 ~ 2024.
    网站logo

    逐暗者的麦田 一个java软件攻城狮
     
     
     
     
    壁纸