[WordPress插件][mirai push] 实现文章消息的及时 QQ 微信 推送

前情提要

作为一名苦逼的网站站长,当得知自己加入的动漫社团“汐月动漫社”要开通Blog时,作为乐于助人的好青年,便“义不容辞”地接下了这个任务,反正也是基于WP的Blog,搭建也不困难,轻松就完成了,毕竟搭建自己的网站积累了不少经验,“汐月Blog”顺利完工。

但是新的问题出现了,没有PV,团员们都不关注Blog,为了救活Blog,社长同志茄子sama和主笔少寒酱就打算让我给网站加一个推送机器人,往群里发文章更新动态。

推送机器人嘛,我第一时间想到的,当然是酷Q,于是连忙百度,啊嘞嘞,跑路了,几个知名的机器人都跑路了,TXNMSL,没办法,只能找找有没有开源的项目或者可以方便使用的推送接口。

最终我盯上了这几个项目,①基于mirai框架的机器人,②只有两个参数的推送机器人Qmsg酱,③以前就一直在用的server酱(微信推送)

经过我这个渣渣3天的努力,终于写出了一个极其不完善的插件来实现文章发布或更新后推送到QQ及微信。

Github发布地址 https://github.com/li14300/mirai-push

三种推送的优缺点:

  1. mirai框架机器人
    • 优点:机器人由自己掌控,自由度较高,拓展性强,可以实现图片,语音等同步发送
    • 缺点:机器人需要单独运行,稳定性不如其他两种
  2. Qmsg酱
    • 优点:参数较少,上手容易,稳定性强
    • 缺点:只能实现文字内容发送,需要内测资格才能进群,除了推送无其它功能
  3. Server酱
    • 优点:参数较少,上手容易,稳定性强,正文支持MD语法
    • 缺点:仅支持微信一对一推送

本插件优缺点

  • 优点:聚合了三种机器人的所有功能,QQ单独推送,群推送,微信一对一推送
  • 缺点:很多很多,前期非常不完善,也是希望以后能够逐步完善的,目前已知
    1. 没有独立的后台页面进行设置,只能手动修改config.php
    2. 第一次写代码东拼西凑写出来的,可能(肯定)有一堆bug
    3. mirai机器人由于会话有超时,每次投稿时,都会进行一遍会话校验和验证
    4. 推送正文修改较为麻烦,看不懂代码可能不会改

部分代码原理

现阶段[v0.3.0]本代码有5个文件组成,目录结构如下

mirai-push
├── includes // 两个主要的php
│     ├── mirai-main.php // 推送主函数
│     └── mirai-virfy.php // 用于mirai机器人认证的函数
├── img //图片存放文件夹
│     └── no-imsge.jpg // 文章无图片时会发送这张图片
├── mirai-push.php // 插件主文件用于挂载钩子
└── config.php // 需要手动修改的配置文件

其中config.php用于填写三种推送渠道的地址、key、推送目标等参数

// mirai酱推送地址 *单引号
$mirai_main_url = '<机器人http-api的推送地址>';
// mirai机器人qq *无需引号
$miraiid = 123456789;
// mirai认证密钥 *单引号
$miraikey = 'miraiexamplekey';
// 推送消息对象 私聊'/sendFriendMessage',群聊'/sendGroupMessage'
$mirai_push_url = $mirai_main_url.'/sendFriendMessage';
// 需要推送的用户/群聊号码 *无需引号
$mirai_push_id = 789456123;
// Qmsg酱的推送地址(可以为群聊地址)*单引号
$qmsg_push_link = 'https://qmsg.zendee.cn:443/send/<qsmgkey>';
// 需要推送的QQ号(可以为群号)*单引号
$qmsg_push_id = '1430059860';
// Server酱推送key *单引号
$serverkey = '<serverexamplekey>';
// 正文长度控制
$mirai_text_length = 100;

而mirai-main.php中的mirai推送部分,如增加群指令如@全体成员

增加方法为将代码28行左右的以下片段


$mirai_postdata = json_encode(array('sessionKey'=>$mirai_push_session,'target'=>$mirai_push_id,'messageChain'=>array(0=>array('type'=>'Plain','text'=>$text),1=>array('type'=>'Image','url'=>$mirai_push_image))));

更改为


$mirai_postdata = json_encode(array('sessionKey'=>$mirai_push_session,'target'=>$mirai_push_id,'messageChain'=>array(0=>array('type'=>'Plain','text'=>$text),1=>array('type'=>'Image','url'=>$mirai_push_image),2=>array('type'=>'AtAll'))));

未来展望

虽说是未来展望,但作为一名专业为德语,没有系统学习过编程的渣渣来说,可能还是有些困难的,能不能实现就看我能不能坚持下去了

  • 增加后台管理页面,不用再去修改文件,能把配置传到数据库
  • 增加基于“mirai-api-http”的mirai机器人控制台(这个项目本来就是优先考虑mirai机器人,其他的俩都是副产物)
  • 实现文章评论推送功能

更新记录

  • 2020-10-8 
    • ver 0.3.0 把所有可修改参数全部整理到config.php,增加对congfig.php内容的解释
      • 已知BUG,文章内图片路径有中文时,mirai会推送失败,预计下一版本修复
    • ver 0.2.2 增加Server酱推送
  • 2020-10-7
    • ver 0.2.1 mirai机器人定时认证 未能实现,改为每次文章发布时运行一次,第一个可以连续运行的版本
    • ver 0.2.0 增加mirai机器人的会话开始-认证模块“mirai-verify.php”
  • 2020-10-6
    • ver 0.1.2 抄代码增加后台面板 ,结局惨淡,完全没有成功,放弃
    • ver 0.1.1 增加config.php,把部分参数挪了进去
    • ver 0.1.0 拆分各部分代码和函数,完成了插件的主体结构
  • 2020-10.5
    • ver 0.0.2 根据mirai机器人的http-api,写了第二个推送函数,POST出去的是json
    • ver 0.0.1 立项,以Qmsg酱作为目标,完成了第一个推送函数,成功发出了第一条推送





文件名称:[WordPress插件][mirai push] 实现文章消息的及时 QQ 微信 推送

更新日期:2020-10-8

文件大小:8kb

广

点击下载

点赞
  1. Overbye说道:
    Google Chrome Mac OS X 10.15.7
    终于找到啦,回头试试
  2. znc15说道:
    Google Chrome Windows 10
    www大佬,安装完插件会有这个报错( /verify): failed to open stream: No such file or directory in /wp-content/plugins/mirai-push/includes/mirai-verify.php on line 21 Warning: file_get_contents(/bind): failed to open stream: No such file or directory in /wp-content/plugins/mirai-push/includes/mirai-verify.php on line 30
  3. 沐深说道:
    Google Chrome Windows 10
    大佬更新一下 :lei:

发表回复

电子邮件地址不会被公开。必填项已用 * 标注