惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
量子位
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
B
Blog
U
Unit 42
C
Check Point Blog
I
InfoQ
aimingoo的专栏
aimingoo的专栏
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
云风的 BLOG
云风的 BLOG
宝玉的分享
宝玉的分享
爱范儿
爱范儿

星辰日记

临时邮箱:开发者的隐私工具实践笔记 为 QuMagie 备份的照片添加 Exif 信息 Riverpod - flutter 状态管理的应用 夜景随拍 大疆 Mini 4K 初体验 5月12日 随笔 你好 2024 HHKB 使用体验 历经59天, 终于拿到软著 渺软公益CDN - 又一个静态资源加速站 你好 2023 记一次 RAID 硬盘离线 大一 碎语 试用 Google CA 的 SSL 证书 Magic Trackpad 使用体验 Centos 编译安装 php81 Redis 统计实时在线人数 Centos 7 升级 Glibc-2.28 Nginx 重写 Query 参数
Waline 邮件异步推送
xcsoft · 2022-07-11 · via 星辰日记

Waline 应该是使用的 ThinkJs,理论上可以通过异步函数来进行异步发信,不清楚为什么要同步发信。由于我对于 ThinkJs 并没有太深入了解,直接修改源码也可能造成部署麻烦,于是我尝试寻找另外的方式来实现异步发信,在研究过后, 发现 Waline 可以设置一个 Webhook 地址,在评论时会自动向该地址发送一个 POST 请求。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{
"type": "new_comment",
"data": {
"comment": {
"link": "https://blog.example.com",
"mail": "email@example.com",
"nick": "xcsoft",
"pid": 1,
"rid": 1,
"ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.115 Safari/537.36",
"url": "/",
"comment": "[@xcsoft](#1): reply",
"ip": "127.0.0.1",
"insertedAt": "2022-07-09T13:47:53.526Z",
"user_id": 1,
"status": "approved",
"objectId": 2,
"rawComment": "reply"
},
"reply": {
"user_id": null,
"comment": "test",
"insertedAt": "2022-07-09 21:46:52",
"ip": "127.0.0.1",
"link": "https://blog.example.com",
"mail": "email@example.com",
"nick": "xcsoft",
"rid": null,
"pid": null,
"sticky": null,
"status": "approved",
"like": null,
"ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.115 Safari/537.36",
"url": "/",
"createdAt": "datetime('now', 'localtime')",
"updatedAt": "datetime('now', 'localtime')",
"objectId": 1
}
}
}