LOADING
916 字
5 分钟
Twikoo图片和推送功能
2026-08-19
实践
Serverless
帖前引言

本博客接入Twikoo接入图片和推送功能部署,在部署最基础的评论功能之后,接下来可以配置图片上传和即时通知

一、配置入口

v1.6.9 管理后台平台,改为内嵌在评论组件里


二、图片上传配置

前置条件(后端侧)

Worker 已绑定:

  • R2 存储桶 twikoo(binding 名为 R2
  • 环境变量 R2_PUBLIC_URL = 你自己 R2 桶的自定义域名

R2 桶需要在 Dashboard 里给桶配自定义域名(R2 → 桶 → Settings → Custom Domains → img.<你的域名>),这样图片才能通过自己的域名访问

R2_PUBLIC_URL 说明:它定义在 wrangler.toml[vars] 段,wrangler deploy 自动上传为 Worker 环境变量。Worker 上传图片时用它拼地址 ${R2_PUBLIC_URL}/${年}/${月}/${文件名},必须指向自己 R2 桶的域名。如果按照模板默认项目作者的值 ,将会404。修改方式:vim wrangler.tomlnpx wrangler deploy --minify

前端判断(关键坑)

报错:上传图片时提示「博主未配置图床服务」

原因:v1.6.9 前端的 parseAndUploadPhoto 逻辑是:

const a = this.config.IMAGE_CDN;
a ? uploadPhotoToThirdParty(...) // 有 IMAGE_CDN → 调 Worker 的 UPLOAD_IMAGE → 走 R2
: uploadFailed("博主未配置图床服务") // IMAGE_CDN 为空 → 直接报错,根本不发请求

也就是说:Worker 的 R2 上传接口早就就绪,但前端在发请求前先检查管理后台的 IMAGE_CDN,为空就直接拦截报「博主未配置图床服务」

解决:管理后台把 IMAGE_CDN 填任意非空值(比如域名)。R2 上传不读 IMAGE_CDN 的内容,它只看 R2 绑定在不在,所以填什么值都行,纯粹是骗过前端判断

其他相关配置

  • SHOW_IMAGE:评论中是否渲染图片,必须为 true(默认就是,别改成 false)。

验证

管理后台填好 IMAGE_CDN 后,重新上传图片,评论里的图片地址应以 自己配置的域名/... 开头,就能正常显示了


三、即时消息通知配置

配置项

即时通知由后端 noticePushoo 触发,需要同时设置两个配置:

配置项含义示例
PUSHOO_CHANNEL推送平台名serverchan
PUSHOO_TOKEN该平台的 token/keyServer酱的 SendKey

平台对比与推荐

但是如何选择呢?这里有可用平台的对比与推荐:

平台推送到哪国内体验说明
Server酱(serverchan)微信✅ 推荐注册即用、免费、中文资料最多(sct.ftqq.com 拿 SendKey)
PushPlus(pushplus)微信(公众号模板消息)✅ 备选免费档够用,国内稳定
企业微信(wecom)企业微信群机器人✅ 很稳免费无限量,需在企业微信里建群配置
dingtalk钉钉群机器人✅ 可用如果你用钉钉
barkiPhone 推送需苹果设备只在 iPhone 上用
telegramTelegram⚠️ 需代理Worker 在海外能发出,但你手机收消息要开代理
qmsgQQ 消息可用Qmsg 酱

推荐Server酱(serverchan) —— 微信收通知最方便,注册快、免费、教程多;不想依赖其免费额度变化的话,企业微信群机器人(wecom) 是最稳的免费替代

配置步骤(以 Server酱 为例)

  1. 打开 sct.ftqq.com,用 GitHub 登录,创建密钥,得到 SendKey(形如 SCTxxx
  2. 进入 Twikoo 管理后台 → 找到 PUSHOO_CHANNEL,填 serverchan
  3. 找到 PUSHOO_TOKEN,填 SendKey
  4. 保存。之后每有人评论,你的微信都会收到推送

注意:配置好Server酱之后可以从网页中测试发送,测试没问题再调试自己的服务;同时需注意,邮件通知(SMTP)和即时推送是两回事,本 CF Worker 部署里 nodemailer 不兼容,邮件要走 SendGrid/MailChannels 的 HTTPS API;如果你主要用即时推送,可以不管邮件。

Twikoo图片和推送功能
/projects/website/twikoo-imgs-msgs/
作者
J.
发布于
2026-08-19
许可协议
CC BY-NC-SA 4.0
编辑于 2026-08-19

部分信息可能已经过时

Profile Image of the Author
J.
我是Jiy,热爱生活的学生一只~
公告
欢迎来到我的博客!
目录
目录