前言
Rin支持通过 Webhook 发送评论通知,但是不熟悉Webhook的朋友听到这个名字可能一头雾水,去搜索引擎只会得到“WebHook 是一种HTTP 回调:某些条件下触发的HTTP POST 请求;通过HTTP POST 发送的简单事件通知。”的介绍,似乎没有开箱即用的好办法。笔者这里使用饭碗警告实现的评论通知,完全免费,能通知钉钉机器人,QQ,微信机器人等方式。
正式开始
配置Webhook地址
进入饭碗警告,用你喜欢的方式登录
点击联系方式
添加你想使用的联系方式,先配置一个方便的联系方式测试,比如邮件。钉钉和QQ的配置下文讲解。
点击转发规则,新建一个规则“博客评论”
- 规则名称:
随便写
- 触发类型:
Webhook
- 通知简述:
博客评论
- 通知正文:
{{content}}
联系方式选择你刚刚添加的,刚注册会有5元的免费额度,可以用来发邮件和短信,电话就大可不必了
- 在你fork的Rin的仓库中添加variable变量,
WEBHOOK_URL
填入你转发规则里的webhook
地址,然后手动触发一次Actions部署 - rin-server部署完成后,可以自己在文章中评论一句,看看自己的邮件能不能收到消息
成功收到了邮件,到这里如果你觉得使用邮件、短信、tg、app的方式足矣便不用继续了。接下来介绍接入钉钉机器人的方式
配置钉钉机器人
- 打开电脑端钉钉,创建一个单人群聊,添加机器人
- 安全设置选择IP地址(段)添入
128.0.0.0/1
和1.0.0.0/1
- 复制钉钉机器人的
webhook
地址 - 在饭碗警告的联系方式中,选择
webhook
,打开高级设置,填入配置
Webhook
:钉钉机器人地址
请求方法
:POST
数据类型
:Body-JSON
数据映射
:msgtype
text
数据映射
:text.content
通知正文
点击添加,在转发规则处勾选webhook,即可接收钉钉机器人的通知,效果如下 如果你想配置企业微信机器人,方法同理,具体可以看饭碗警告的文档:如何使用饭碗警告将邮件转到企业微信机器人
配置QQ机器人(NapNeko)
- 首先得有台服务器或者软路由,总之是能7*24小时运行docker的东西,详细的安装过程请参考NapNeko官方文档
这里使用docker
部署HTTP
方式通信的qq机器人,配置如下
命令行运行
docker run -d \
-e ACCOUNT=<你的机器人qq> \
-e HTTP_ENABLE=true \
-e HTTP_POST_ENABLE=true \
-e HTTP_URLS='["http://192.168.3.8:5140/onebot"]' \
-e NAPCAT_GID=$(id -g) \
-e NAPCAT_UID=$(id -u) \
-p 3000:3000 \
-p 6099:6099 \
--name napcat \
--restart=always \
mlikiowa/napcat-docker:latest
docker-compose 运行
# docker-compose.yml
version: "3"
services:
napcat:
environment:
- ACCOUNT=<你的机器人qq>
- HTTP_ENABLE=true
- HTTP_POST_ENABLE=true
- HTTP_URLS=["http://192.168.3.8:5140/onebot"]
- NAPCAT_UID=${NAPCAT_UID}
- NAPCAT_GID=${NAPCAT_GID}
ports:
- 3000:3000
- 6099:6099
container_name: napcat
network_mode: bridge
restart: always
image: mlikiowa/napcat-docker:latest
其中3000
是http
通信端口,6099
是Web_ui
的端口,你可以开放服务器对应的端口,或者用nginx
等反向代理软件将配置到443
端口nginx
配置Web_ui
示例如下:
server {
listen 80;
listen 443 ssl http2;
server_name example.com;
index index.php index.html index.htm default.php default.htm default.html;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
access_log /www/sites/example.com/log/access.log main;
error_log /www/sites/example.com/log/error.log;
location ^~ /.well-known/acme-challenge {
allow all;
root /usr/share/nginx/html;
}
include /www/sites/example.com/proxy/*.conf;
if ($scheme = http) {
return 301 https://$host$request_uri;
}
ssl_certificate /www/sites/example.com/ssl/fullchain.pem;
ssl_certificate_key /www/sites/example.com/ssl/privkey.pem;
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!EXPORT:!DSS:!DES:!RC4:!3DES:!MD5:!PSK:!KRB5:!SRP:!CAMELLIA:!SEED;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
proxy_set_header X-Forwarded-Proto https;
add_header Strict-Transport-Security "max-age=31536000";
location ^~ / {
proxy_pass http://0.0.0.0:6099;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
add_header X-Cache $upstream_cache_status;
add_header Cache-Control no-cache;
proxy_ssl_server_name off;
proxy_ssl_name $proxy_host;
add_header Strict-Transport-Security "max-age=31536000";
}
}
然后就可以在https://example.com/webui/login.html
登录了,启动时日志会输出[WebUi] Login Token is xxxx
,或者你可以找到webui.json
这个文件来获取登录Token 如果
docker
命令没有出错的话,Http
服务是开启的 这时你可以在浏览器输入
http://服务器ip:3000/send_private_msg?user_id=123456&message=hello
其中123456
替换为你接收消息的qq号,一切正常的话,就可以收到hello
的消息了
同样,我也建议将3000
反向代理到443
- 在饭碗警告中添加QQ机器人 打开联系方式,选择webook,配置如下:
Webhook
:https://你的网址/send_private_msg
请求方式
:POST
数据形式
:Body-JSON
数据映射
:user_id
接收消息的qq号
数据映射
:message
通知正文
配置完成可以点击测试看是否能收到消息
到这里就全部完成了,现在有人评论你的博客,就可以在QQ收到通知了,时效性真是太高啦(然并卵,根本没人评论博客)
后记
当然,你也可以修改Rin的源码
作者设置的POST
消息格式是
{
"content": "消息内容"
}
理论上改为
{
"msgtype": "text",
"content": "消息内容"
}
即可接收钉钉机器人的消息,不过笔者为了方便随时切换通知平台,配置在了饭碗警告,反正也不收费
至此,大功告成,恭喜你的博客能将评论通知到QQ了
参考文档
- 本文链接:https://blog.kafuchino.top/posts/2024-10-08
- 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 许可协议。