前情提要
作为一名苦逼的网站站长,当得知自己加入的动漫社团“汐月动漫社”要开通Blog时,作为乐于助人的好青年,便“义不容辞”地接下了这个任务,反正也是基于WP的Blog,搭建也不困难,轻松就完成了,毕竟搭建自己的网站积累了不少经验,“汐月Blog”顺利完工。
但是新的问题出现了,没有PV,团员们都不关注Blog,为了救活Blog,社长同志茄子sama和主笔少寒酱就打算让我给网站加一个推送机器人,往群里发文章更新动态。
推送机器人嘛,我第一时间想到的,当然是酷Q,于是连忙百度,啊嘞嘞,跑路了,几个知名的机器人都跑路了,TXNMSL,没办法,只能找找有没有开源的项目或者可以方便使用的推送接口。
最终我盯上了这几个项目,①基于mirai框架的机器人,②只有两个参数的推送机器人Qmsg酱,③以前就一直在用的server酱(微信推送)
经过我这个渣渣3天的努力,终于写出了一个极其不完善的插件来实现文章发布或更新后推送到QQ及微信。
Github发布地址 https://github.com/li14300/mirai-push
三种推送的优缺点:
- mirai框架机器人
- 优点:机器人由自己掌控,自由度较高,拓展性强,可以实现图片,语音等同步发送
- 缺点:机器人需要单独运行,稳定性不如其他两种
- Qmsg酱
- 优点:参数较少,上手容易,稳定性强
- 缺点:只能实现文字内容发送,需要内测资格才能进群,除了推送无其它功能
- Server酱
- 优点:参数较少,上手容易,稳定性强,正文支持MD语法
- 缺点:仅支持微信一对一推送
本插件优缺点
- 优点:聚合了三种机器人的所有功能,QQ单独推送,群推送,微信一对一推送
- 缺点:很多很多,前期非常不完善,也是希望以后能够逐步完善的,目前已知
- 没有独立的后台页面进行设置,只能手动修改config.php
- 第一次写代码东拼西凑写出来的,可能(肯定)有一堆bug
- mirai机器人由于会话有超时,每次投稿时,都会进行一遍会话校验和验证
- 推送正文修改较为麻烦,看不懂代码可能不会改
部分代码原理
现阶段[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酱推送
- ver 0.3.0 把所有可修改参数全部整理到config.php,增加对congfig.php内容的解释
- 2020-10-7
- ver 0.2.1
mirai机器人定时认证 未能实现,改为每次文章发布时运行一次,第一个可以连续运行的版本 - ver 0.2.0 增加mirai机器人的会话开始-认证模块“mirai-verify.php”
- ver 0.2.1
- 2020-10-6
- ver 0.1.2
抄代码增加后台面板,结局惨淡,完全没有成功,放弃 - ver 0.1.1 增加config.php,把部分参数挪了进去
- ver 0.1.0 拆分各部分代码和函数,完成了插件的主体结构
- ver 0.1.2
- 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
提示:如遇问题或者链接失效请联系站长,欢迎捐赠本站以及广告合作!