搭建微信通知API实现Twikoo新消息提醒
Twikoo目前提供了Server 酱、Qmsg 酱、推送加 3种即时通知方式,可对我而言,总感觉不得劲儿。之前用推送加,却不能直接接收消息,URL也得手动复制查看,烦是不烦。
服务对比
效果预览
效果预览
废话少说,自己琢磨清楚,就分享出来。通过本篇,你将获得:一个属于自己,不被别人卡脖子的Twikoo新评论提醒服务,不限量!!
注意事项本文涉及修改 Twikoo 云函数源代码,请自行评估是否继续。 twikoo 1.4.5及以上版本直接配置,开箱即食。
注册企业微信
该功能通过企业微信的应用
实现,注册企业微信太简单了,此处流程省略。
企业微信创建一个应用
在“企业微信——应用管理”最底部的“自建”应用处,新建一个“应用”。名称比如就叫消息通知
,配置完成后记录下应用页面的AgentId
和Secret
。注意,查看Secret
需要安装一个企业微信,查看完可以卸载。
在“企业微信——我的企业”底部,记录下“企业ID”。
至此,微信配置完成,开始配置提醒API。
关注企业微信
用自己的常用微信,关注上面创建的企业微信。
若出现接口请求正常,企业微信接收消息正常,个人微信无法收到通知,请这样排查:
- 进入「我的企业」 → 「微信插件」,拉到最下方,勾选「允许成员在微信插件中接收和回复聊天消息 」
- 在企业微信客户端 「我」 → 「设置」 → 「新消息通知」中关闭「仅在企业微信中接受消息」限制条件
Twikoo配置
配置pushoo
进入 Twikoo
管理面板,在“及时通知”——“PUSHOO_CHANNEL”中,填写wecom
,在PUSHOO_TOKEN
中配置上文过程中申请到的企业微信构成的PUSHOO_TOKEN
。
PUSHOO_TOKEN
组成:
1 | 企业ID#应用Secret#应用ID拼接构成,中间用 “#” 号分隔,如: |
至此,配置完成。换一个非博主邮箱,评论一条试试吧。
创建API云函数
首先参考Heo 的教程,创建一个腾讯云或vercel版本的云函数。
我使用了腾讯云环境(也没多贵,相比vercel更稳定),简单说下过程:
可以复用之前 Twikoo 那个云开发环境,直接创建一个新的云函数,名称自定义如weixin-push
,选择helloworld 空白模板函数
,Python3.6
环境, 128MB
就OK了。下一步粘贴下面的代码,点击创建:
1 | # -*- coding: utf8 -*- |
配置好访问服务(如果第一次创建,参考 Twikoo 教程还需要配置安全域名等):
至此,云函数创建完成。可以使用下面这样的方式,拼接一个URL
,浏览器访问,看看手机微信能不能接收到消息。
云函数的访问服务URL + 触发路径 + ?id=你的企业微信ID + secert=上文记录的secert + Id=上文记录的AgentId + &msg=随便测试一下吧
如我下面这样的:
1 | https://blogpkly-13278c-1258453354.ap-shanghai.app.tcloudbase.com/weixin-push?id=ww*******&secert=Ne******&agentId=1000003&msg=随便测试一下吧 |
浏览器返回以下内容,说明配置完成(msg后的内容,是Unicode编码后的“随便测试一下吧”内容,点击这里可以转换 )。
1 | {"status": 0, "msg": "\u968f\u4fbf\u6d4b\u8bd5\u4e00\u4e0b\u5427"} |
老方法修改云函数源代码方式已经PR给Twikoo,现已合入。
升级Twikoo云函数版本
按照官方教程, 升级Twikoo到 v1.4.5 版本(最新版本)。Twikoo 中文文档:版本更新
在 Twikoo v1.4.5 及以上版本中,打开控制面板,在上述企业微信API搭建完成后,拼接成下述样式的URL
,填写在即时通知
——WECOM_API_URL
中即可完成配置。
1 | https://blogpkly-13278c-1258453354.ap-shanghai.app.tcloudbase.com/weixin-push?id=企业微信获取&secert=企业微信获取&agentId=企业微信获取&msg= |
- 使用自定义API提醒,请将其他Server 酱、Qmsg 酱、推送加 的
KEY
留空。 - 若升级完云函数,网站前端页面配置面板未出现
WECOM_API_URL
配置项,Twikoo版本仍为 1.4.5 以下版本,可去主题配置文件Ctrl + F定位到comments
,将改为1
twikoo: https://jsd.guole.fun/npm/twikoo/dist/twikoo.all.min.js
1
twikoo: https://jsd.guole.fun/npm/twikoo@1.4.5/dist/twikoo.all.min.js
微信关注自己的企业微信账号,然后用其他非博主邮箱在网站留言,试试即时通知吧!
创建API云函数
首先参考Heo 的教程,创建一个腾讯云或vercel版本的云函数。
我使用了腾讯云环境(也没多贵,相比vercel更稳定),简单说下过程:
可以复用之前 Twikoo 那个云开发环境,直接创建一个新的云函数,名称自定义如weixin-push
,选择helloworld 空白模板函数
,Python3.6
环境, 128MB
就OK了。下一步粘贴下面的代码,点击创建:
1 | # -*- coding: utf8 -*- |
配置好访问服务(如果第一次创建,参考 Twikoo 教程还需要配置安全域名等):
至此,云函数创建完成。可以使用下面这样的方式,拼接一个URL
,浏览器访问,看看手机微信能不能接收到消息。
云函数的访问服务URL + 触发路径 + ?id=你的企业微信ID + secert=上文记录的secert + Id=上文记录的AgentId + &msg=随便测试一下吧
如我下面这样的:
1 | https://blogpkly-13278c-1258453354.ap-shanghai.app.tcloudbase.com/weixin-push?id=ww*******&secert=Ne******&agentId=1000003&msg=随便测试一下吧 |
浏览器返回以下内容,说明配置完成(msg后的内容,是Unicode编码后的“随便测试一下吧”内容,点击这里可以转换 )。
1 | {"status": 0, "msg": "\u968f\u4fbf\u6d4b\u8bd5\u4e00\u4e0b\u5427"} |
微信关注自己的企业号。
修改Twikoo云函数
找到腾讯云开发云函数/twikoo/函数代码/node_modules/twikoo-func/index.js
,在不破坏云函数原本逻辑基础上,总共修改 3 处。
注意:打开云函数在线函数代码查看页面后,切不可直接关闭网页,关闭前点击“函数配置”切换到其他页面,再关闭,否则腾讯云网页抽风,再进入一直提示“拉取代码失败”,就很麻烦。
第一处修改
在云函数/twikoo/函数代码/node_modules/twikoo-func/index.js
大约 866 行,可 Ctrl+F 搜索定位到Promise.all
在await Promise.all([
内容下,增加一行noticeWinxinPush(comment)
,改完后如下:
1 | // 发送通知 |
第二处修改
在云函数/twikoo/函数代码/node_modules/twikoo-func/index.js
大约 908 行,可 Ctrl+F 搜索定位到const IM_PUSH_CONFIGS = [
在'PUSH_PLUS_TOKEN',
内容下,增加一行'WXPUSH_KEY'
,改完后如下:
1 | // 博主通知 |
第三处修改
在云函数/twikoo/函数代码/node_modules/twikoo-func/index.js
大约 1005 行,可 Ctrl+F 搜索定位到pushplus 通知
在适当位置增加以下内容:
1 | // weixin-push 通知 |
补充一个配置项 WXPUSH_KEY
接着在云函数/数据库/config
中,点击“查看所有”,点击编辑,增加一个字段:
1 | "WXPUSH_KEY":"abc123" //值的类型为string,值随便一个字符串(因为前端没有这个key配置入口,就添加到这里) |
使用自定义API提醒,请将其他Server 酱、Qmsg 酱、推送加 的KEY
留空。
大功告成!现在,使用一个非博主的邮箱,去评论一条,看看是不是下面这样:
好用记得点赞~~
关联阅读:
- 感谢鼓励 🙏