快捷菜单
常用功能一站直达
更多功能请点顶栏「快捷菜单」

1https://seasir.top/posts/friends-apply/ 这批文章《自助友链申请》是hyde大佬给他的astro博客配置的自助友链申请功能。
2需要使用阿里云 Supabase数据库 存储,还需要eo边缘函数,eo makers项目,再就是他的astro博客前端代码。这应该是一个独立的自助友链申请项目。
3hyde开源仓库:https://cnb.cool/W3C/Hyde/Firefly-hyde
4
5我现在有个需求:
6我想给自己 友链申请 页面也加下这个功能,但是我更希望吧这个功能给集成到自己的博客后台,可以利用的有eo kv,eo边缘函数等。
7我觉得这个自助友链申请最好不要单独作为一个项目,直接集成到博客后台是最佳的选择,不然太依赖第三方服务很不友好。
8
9请评估下这个方案是否可行。
10
11可以把 hyde自动申请友链的页面区域 给我放到我目前友链页面的最下方哦,然后我原来友链最上面的申请友链内容给去掉。结论:可行,而且比照抄 Hyde 的 Supabase 方案更适合你现在的 OneBlog 架构。
| 层 | Hyde 做法 |
|---|---|
| 前端 | 友链页底部表单 → POST /api/friends |
| API | EdgeOne 边缘函数拦截 /api* |
| 存储 | 阿里云 Supabase(PostgreSQL) |
| 审核 | 独立 /api/admin(环境变量账号密码) |
| 展示 | GET /api/friends 动态拉已通过友链 |
他还依赖:Supabase 项目、单独边缘函数、Makers/自定义域名、飞书/钉钉推送。这确实是「半独立后端」。
oneblog-admin 已在 EO Pages Functions 上跑通公开 API + JWT 后台ADMIN_KV / COMMENT_KV 已有完整读写模式(评论审核就是现成范本)35.友链.md 并走 Git → 构建发布https://oneblogadmin.onedayxyy.cn(评论)所以不需要再开一个友链项目,也不需要 Supabase。
1访客友链页表单
2
3 → POST oneblogadmin.../api/friend-apply (公开,KV 存 pending)
4
5后台「友链申请」
6
7 → 审核通过:写入现有友链 MD(你已有)→ 触发构建
8
9 → 拒绝:更新 KV 状态
10
11正式友链列表仍走 Hugo 静态数据(与现状一致)和 Hyde 的关键差异(对你是优点):
/api/adminKV 只做主键查询,对「申请列表 / 状态」完全够;评论系统已经验证过同一套模式。
实现时建议:
friend-apply-message.html(留言格式复制区)可选增强(后期):审核通过时复用评论里已有的钉钉/邮件通知。
总结:集成进博客后台完全可行,且是更干净的路径。 若你确认开工,我可以按这个方案直接改:后台 API + 审核页 + 友链页底部表单(去掉顶部申请区)。
已集成完成,可直接部署验证。
🟢做了什么
oneblog-admin/functions/lib/friend-apply.js)POST /api/friend-apply → 写入 ADMIN_KV(flink: 前缀)35.友链.md 指定分组 → 触发构建#friend-apply🟢部署后自测
无需 Supabase、无需独立边缘函数项目;复用现有 oneblog-admin + ADMIN_KV。
已全部推送到 origin/master。
1afbfbe3 — feat(friends): 集成自助友链申请到博客后台与友链页09f154ed — chore: 同步迭代记录 lastmod工作区干净,远程已同步。等 CNB / EdgeOne 部署完成后即可在友链页和后台验证。
测试细节-是ok的哈哈哈




🟢需求
1我希望别人申请友链后,可以像我前面的自建轻量评论一样,可以直接通过钉钉一样给我消息通知。🟢解决
已接上:访客提交友链申请后,会复用评论管理里的钉钉 Webhook 推送通知。
行为
dingtalk_webhook / dingtalk_enabled前提
「内容 → 评论」里钉钉已启用且 Webhook 可用(和评论通知同一套)。
需要的话我可以帮你提交并推送。
已推送到 origin/master。
9d51db08 — feat(friends): 友链申请复用评论钉钉 Webhook 推送通知工作区干净。Admin 部署完成后,在友链页提交一条测试申请即可验证钉钉通知。
🟢测试(完美)

精选 · 友链 · 更多

One的公众号
爱折腾博客的小白