目录

  • 背景
    • 需求
    • 要求
    • 别人的服务
  • 自建服务
    • 原理
    • 准备资源
      • 个人云服务器
      • 企业微信
    • api接口
      • 云服务器部分代码
    • 效果

背景

需求

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

要求

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

别人的服务

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

自建服务

原理

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

准备资源

个人云服务器

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

企业微信

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

api接口

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

云服务器部分代码

  • 获取token
     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);
  • 发送应用消息
     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);

效果



  1. 企业微信发送应用消息API文档 ↩︎

  2. linux+nginx+mysql+php环境。 ↩︎

自建自用的微信推送服务相关推荐

  1. 苹果微信推送服务器错误,接入WxPusher微信推送服务出现错误:Content type application/x...

    背景 使用WxPusher微信推送服务 ,可以及时的将服务的一些运行异常信息,发送到自己的微信上,方便了解服务的运行状态(PS:这个服务是免费的). 你可以在这里看到WxPusher微信推送服务的接入 ...

  2. 程序员直男也有的浪漫,快来给朋友制作一款定时微信推送服务吧

    微信测试公众号推送服务 1.完成效果

  3. 群晖消息通知 推送服务器,群晖开启系统信息微信推送服务

    1.在电脑上,用浏览器到大名鼎鼎的GitHub注册一个账号,地址:https://github.com/join?source=login  ,注册过程略过,注册好账号以后登录该网站(如果之前已经注册 ...

  4. 推荐一款好用的消息推送服务WxPusher

    目录 一.什么是WxPusher? 二. 官网地址 1.在线文档地址 2.在线demo演示 三.快速入门 1.注册并创建应用 2.扫码关注应用 3.获取UID 4.发送消息 四.常用HTTP接口详解 ...

  5. 一加消息推送服务器,华为、荣耀、OPPO、realme、一加完成统一推送服务开发

    这意味着,符合联盟标准的统一推送服务,将覆盖华为.荣耀.OPPO.realme.一加五个品牌的手机. 具体来讲,华为.荣耀将首先在EMUI 10正式版中支持统一推送,华为和荣耀新发布机型全部支持,现有 ...

  6. Bark 使用指南:如何自建 iOS 消息推送服务

    文章首发于个人公号:「阿拉平平」 之前我写过一个脚本,校验 SSL 证书是否过期并定时将结果以邮件的形式告知.事实上,这些消息并不是那么重要,发送邮件未免有些「重」了,将结果直接推送到自己的手机上可能 ...

  7. Android推送服务(2)微信智能心跳方案

    http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=207243549&idx=1&sn=4ebe4beb8123f1b5 ...

  8. 微信push服务器,GitHub - brucx/mp-push-nestjs: 微信公众号消息推送服务,类似“server酱”,提供Docker镜像部署...

    MP-PUSH 一个频道可以被多个微信订阅,一个微信也可以订阅多个频道.当有消息到达频道时,会向所有订阅的微信推送通知. 开发此项目的目的是实现一个自己的"Server酱",方便自 ...

  9. Android 手机厂商推送服务调研

    由于谷歌服务在国内不能用,Android 的推送真是一大痛点,但也推动了国内一批做第三方服务的厂商.第三方推送做的比较好的有极光.个推.百度.友盟,经过比较之后,最后选择了极光推送.其实这些第三方推送 ...

  10. 使用阿里云邮件推送服务架设自己邮件验证与推送体系

    提示:阅读本文需提前了解的相关知识 1.电子邮件协议(http://baike.baidu.com/view/2367542.htm) 2.阿里云邮件推送(https://www.aliyun.com ...

最新文章

  1. 【Thinkphp 5】 整合邮箱类 phpmailer实现邮件发送
  2. 开源库OpenNMT-py使用记录
  3. Spring发展历程总结
  4. matlab for循环不覆盖,Matlab for 多个变量循环能不能这样啊 ,求教高手!!!!...
  5. php实战第二十五天
  6. NioEventLoopGroup 源码分析
  7. iframe 父级元素查找
  8. 制造业如何应用大数据
  9. hibernate使用sql语句查询实体时,要写上addEntity
  10. 多线程 NSThread 的使用
  11. 如何定制 Calico 网络 Policy - 每天5分钟玩转 Docker 容器技术(70)
  12. 【身份牌识别】基于matlab GUI模板匹配身份牌识别【含Matlab源码 1354期】
  13. 2014年二级c语言题库,全国计算机二级c语言题库试题
  14. 笔记本风扇声音大怎么办
  15. big code: Toward Deep Learning Software Repositories [MSR 2015]
  16. SICP 练习1.8
  17. Docker容器化开发
  18. 多旋翼飞行器设计与控制·绪论(笔记001)
  19. 样本方差为何除以n-1而不是n?
  20. mysql数据库select语句用法_mysql数据库select查询语句简单用法

热门文章

  1. 基于FPGA的SD卡音乐播放器之SD卡篇
  2. 360路由器v2刷第三方固件_不走弯路:小米路由器3G 刷Padavan固件简单教程
  3. 设计模式优秀文章集合
  4. 戴尔笔记本linux不能开机启动,戴尔笔记本bios设置开机启动项图解
  5. 使用GRUB2制作U盘PE启动盘
  6. java基础热门侠客养成_侠客养成手册攻略大全 新手攻略开局任务流程汇总[多图]...
  7. 还记不住Spring Bean的生命周期?看这篇你就知道方法了!
  8. Git官网下载windows版本慢的问题
  9. linux esp分区,win10esp分区多大合适
  10. win10扩展EFI分区