很高兴和你相遇
这里正在记录我的所思所学
首页 标签 归档 播客 关于

跨平台协作,让飞书实时接收语雀更新提醒

本文首发于「少数派

飞书来自字节跳动,语雀这款工具则来自蚂蚁金服,在目前国内应用市场的整体背景下,大厂之间水火不容似乎才符合常理。好在作为优秀的团队协作工具,飞书和语雀都有着不错的开放心态,这也让二者的整合和连接成为了可能。很多时候给用户多一点选择而不是固步自封,或许反而可以吸引和留住更多用户。

什么是 Webhook

所谓 Webhook 也叫做 Web 回调(callback),效果和 API 类似但不需要客户端主动向服务端获取数据,而是主动接收服务端内容。即一端触发事件另一端就可以监听执行,从而提供实时信息。

具体来说,当 A 发生某一事件时,例如文章更新添或加评论,它就会发起一个 HTTP 请求到 B 服务 Webhook 配置的 URL,然后 B 服务对返回的内容(通常是 JSON 或 XML 格式)解析后再进行展示等进一步操作。

使用场景

语雀是孵化自蚂蚁金服的一个「专业云端知识库」,其知识库的形式非常适合做系统的内容整理和分享,关于语雀的介绍可以参考我之前写过的一篇文章,这里不再赘述。

目前我所在的一个团队正在利用语雀搭建若干和专业内容相关的开源知识库,日常大家会在语雀进行文档的编写和协作,同时我们也在用飞书进行日常的沟通。为了让大家能够及时了解到语雀上的文档信息,如果可以把消息实时推送到飞书就再好不过了。

上面的需求,刚好可以通过 Webhook 实现。

配置方法

获取飞书 Webhook URL

在之前一篇 利用飞书电子表格对 Trello 内容汇总 的文章中,已经介绍了飞书精灵。它是飞书团队推出的自动化工具。通过把不同功能串连到一块,形成一个自运行的工作流,让所有外部信息都有机会汇总到飞书里。

飞书精灵的触发器中有一项就是 Webhook,该触发器可以提供一个 URL,首先我们需要获取这个地址稍后填写到语雀的对应设置中。

需要进行三步操作:

  • 创建一个新的飞书精灵,触发器选择 Webhook
  • 选择触发器,只有一个选项
  • 在设置选项中可以看到生成的 URL ,复制稍后备用

获取 URL

配置语雀 Webhook

语雀支持通过配置知识库的 Webhook 让开发者获取指定知识库下所有文档的发布状态,只要该知识库下的文档被发布或更新,就会按需触发该知识库下所配置的 Webhook。

首先在需要设置提醒的知识库设置界面点击「开发者」,然后将飞书 URL 填写到对应位置,再设置一个有区分度的名字,最后「添加」即可。

了解返回内容

语雀使用 HTTP POST 请求 Webhook URL,具体内容是一个 JSON 数据结构,里面包含了大量的键值对信息。我们首先需要对整体返回内容有一个直观认知,在这里可以通过简单的文档发布来学习。

在飞书精灵触发器的设置选项中参数部分是必填项目,它需要填写一到两个具体的返回内容实例,因为此时我们并不知道具体返回内容是什么,因此可以填写一个大括号 {}。你可以把它理解为一个最基础的 JSON 格式。

20200201103106226_1842727464

接下来进行机器人操作部分的设置:

  • 选择「飞书消息」
  • 选择「通过机器人发送消息」
  • 在设置选项中,标题暂时可以随便取名字,在消息内容部分点击「加号」下拉选项中目前只有「完整 JSON」
  • 点击创建即可

完成前期准备工作之后,现在通过语雀新建一个非常简单的文档并发布,这时就会在飞书精灵中接收到一条消息推送。

20200201103106226_1842727464语雀新建并发布文档

20200201103106226_1842727464

飞书精灵接收完整 JSON 内容

上面这条很长的消息就是语雀返回的全部内容,把它放到代码编辑器中进行格式美化后我们可以看到 data 下为文档的详细信息,例如 body 是正文 Mrakdown 源代码,title 是文章题目,具体内容可以查看官方说明。此外还包括了知识库信息 book 部分以及作者信息 user 部分。

20200201103106226_1842727464

最终配置及实际效果

通过一篇简单文档我们已经获得了语雀返回的 JSON 格式完整数据,现在可以对之前的机器人进行更加精细化的配置。

首先把所有 JSON 内容复制到触发器设置的参数部分。

20200201103106226_1842727464

然后在操作部分部分的设置选项中将旧变量删除,这时再点击「加号」就可以看到飞书精灵根据 JSON 实例内容提取到的所有参数了。

最后一步,我们对消息推送内容进行更加完善易读的设置。

我目前的设置是将标题设置为文档标题,在消息内容中分别展示所属知识库、文档作者、更新时间、文档字数和访问路径这些内容门,如下图所示。这里需要特别注意的是,语雀本身不会提供文档链接,我们可以通过补充主网址加data.path实现。当然你也可以根据实际需要进行更加个性化的设置。

20200201103106226_1842727464详细设置消息内容

一套组合拳之后打完收工。以后每当对应的知识库有文档更新,就会在飞书中实时接收到如下所示的提醒,非常方便。

20200201103106226_1842727464

实际推送效果

希望这篇文章可以让你对飞书精灵的 Webhook 设置有一个直观了解,并有机会应用于自己正在使用的其它服务,发挥飞书更大的潜能。


本文作者:思考问题的熊

版权声明:本博客所有文章除特别声明外,均采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。

扫码即刻沟通

· 分享链接 https://kaopubear.top/blog/2020-02-01-larkandyuque/