飞书多维表格实现友链自助提交

借助飞书多维表格实现Halo博客友链添加全自动流程的解决方案

前言

这个网站建立一年多了,从Typecho的时代到今天的Halo,我都没有注意过友链这个功能。直到最近有朋友来问,说你的站点的友链页面为什么什么也没有啊,我才注意到这个功能。再加上前段时间偶然间在B站刷到过一个使用飞书多维表格自动化添加友链的视频,视频中只提供了简单的思路,于是我决定实践一下,摸索出一套完整的解决方案。

实现逻辑

想要实现友链的自助提交功能,大体上应该有两部分:友链的申请,友链的添加。友链的申请部分可以用飞书多维表格构建一个收集表,用来收集友链的申请信息。友链的添加部分需要实现友链的自动化添加,这里可以在飞书多维表格中创建工作流,利用工作流的发送HTTP请求功能,调用Halo链接插件的官方API即可完成添加。

除此之外,在友链的申请和添加中间,我还想实现一个步骤,那就是友链的自动化审核。两个网站想要构成友链,应该是互为友链的,单方面的友链不太可能。因此,我还希望在这个流程中可以实现友链的自动验证审核,自动去对方网站的友链页面检查一下添没添加我的网站信息。

所以,完整的逻辑应该是:先接收申请,再进行审核,最后进行添加。

实现细节

友链的申请

首先我们要解决的是友链的申请部分,这部分应该是三步曲中最好解决的部分。

我们只要在飞书中新建一个多维表格,可以给它取名为“友链”。然后在这个多维表格中新建一个收集表,在这个收集表中添加所有你需要收集的信息,我认为需要收集的就是以下这些信息,当然你可以根据实际情况自定义。

你的昵称

你的网站名称

你的网站链接

你的网站类型

你的网站简介

你的网站Logo

你的网站的友链页面

你的邮箱

其他说明

然后你可以给这份表单起一个名字,比如“友链自助申请表”,可以给它换个好看的样式。记得在右上角的设置中将表单设置成“允许匿名填写”和“任何人都可以填写”,然后就可以发布啦。此时你就会获得一个可以对外分享的链接,理论上把这个链接挂到你的网站的友链页面上就可以供他人自助申请了。

关于友链自助申请表的设计,这里可以参考一下我的:(下面加载失败请点击这里)

最后,为了体现一些专业性,我们可以创建一个查询页面,用户可以通过这个查询页面查看提交的信息和处理进度等信息。在这份申请表的右上角点击创建查询页面的小圆钮,就可以自动生成一个查询页面。我们可以调整一下让用户查询的字段,我建议只勾选你的邮箱你的网站链接即可,因为这两个字段的唯一性比较强,保证用户可以精准查询到自己提交的记录。

同样的,我们可以给这个表单美化一下,起个名叫“友链提交查询”。可以在右上角的设置中调整查询范围、权限设置、可见字段等相关设置。然后点击发布即可获得一个可以对外分享的链接。

这里也可以参考一下我的“友链提交查询”页面:(请点击这里前往)

2024-12-11-hnvingpk.png

至此,一个如下图结构的收集表就做好了,我们可以在多维表格的收集结果中直接查看提交记录。

2024-12-11-mqvsqwot.png

为了方便后续的自动化处理部分,需要在收集表中手动添加三个字段:友链添加状态、添加失败原因、人工审核意见(可选):

2024-12-11-ktwkzoit.png

2024-12-11-mymqrgbh.png

2024-12-11-ucvthgfl.png

友链的审核和自动化处理添加

友链的审核部分则依赖飞书多维表格的工作流和自动化功能,从而实现友链从提交到审核再到添加的全流程自动化作业。

工作流

工作流的完整流程如下,包含了从提交到审核到添加的全过程,以及错误处理和通知功能。

因为飞书多维表格的工作流不支持直接对外分享,若需要具体每个步骤的配置细节,请查看 资源分享说明 部分。

2024-12-11-wwsxkedd.png

2024-12-11-jxodycqr.png

2024-12-11-pciobhhq.png

自动化

自动化主要是根据流程中的不同状态和情况,自动触发对用户的邮件通知。目前共有六种状态需要通知:

同样因为飞书多维表格的自动化配置不支持直接对外分享,若需要具体的配置细节和邮件模板,请查看 资源分享说明 部分。

2024-12-11-rkkkryfk.png

友链自动验证工具-flinkvertify

对于双向友链的验证部分,这里需要展开介绍一下这个搭配工作流使用的双向友链验证插件——flinkvertify。

这个程序的设计目的是为了在对方网站的友链页面上自动抓取并验证对方是否添加了我们的博客为友链,然后返回检测结果给多维表格的工作流。当检测结果为true时,工作流会继续进行友链自动化添加流程;当检测结果为false时,触发并通知人工审核。

flinkvertify目前已经开源,欢迎前往Gitee或Github下载使用:

https://gitee.com/chenxv399/flinkvertifyhttps://github.com/chenxv399/flinkvertifyhttps://code.utopias.site/chenxv399/flinkvertify

多维表格工作流中的第9步和第11步即为双向友链验证功能的实现,具体细节如下:

2024-12-11-demtprbm.png

2024-12-11-tbsuwovo.png

友链自动添加部分

对于友链的自动添加部分,通过请求Halo官方链接插件plugin-links的接口实现:

项目地址:https://github.com/halo-sigs/plugin-links

接口文档:https://github.com/halo-sigs/plugin-links/blob/main/api-docs/openapi/v3_0/linksV1alpha1Api.json

多维表格工作流中的第15步即为自动添加友链功能的实现,具体细节如下:

2024-12-11-dysbejyb.png

资源分享说明

请遵守CC BY 4.0协议,转载本文请注明原作者及来源。请勿用于任何形式的商业用途。

https://utopia-s.feishu.cn/wiki/PirJwMRU2iL4VokQDOkcFTlzn0V?from=from_copylink

224f299&
  • 对于多维表格工作流和自动化的具体细节的获取,因为飞书不支持直接分享多维表格的工作流和自动化,请联系本站邮箱或在评论区留下您的联系方式,本人看到后将会联系您。