用 Serverless 的方式,快速上线飞书机器人应用
使用 Serverless Reactor 创建机器人应用,并参与 Second State 与 CSDN合办的开源征文活动,就有机会获得 Apple Airtag、机械鼠标等奖品。
协作平台已经成为工作中不可必备的工具,国内诸如飞书、钉钉、国内比如 Telegram、Slack、Discord 等。如何让协作平台更好地帮助自己呢?开放平台是个不错的选择,让用户可以根据自己的需要选择第三方应用来更好地服务自己。掌握了代码技能的开发者甚至还可以根据自己的需求,动手开发一个机器人应用。
飞书上的机器人可以做什么? 你可以做个提醒机器人,提醒你开会、喝水、订餐、去活动一下等。你还可以做个天气查询机器人,每天下班前提醒你第二天的天气。你还可以做个企业内部的抽奖程序,放在年会里用,这个抽奖程序天然地只能在组织成员内部使用。
如果要开发一个飞书上的机器人应用,通常情况下,需要自己建立运维一个服务器,注册备案域名,获取证书。然后在服务器上部署机器人的业务逻辑,调用飞书的 API ,审核消息内容,等等。这对于个人开发者来说成本太高了。尤其是如果开发者只是想试个想法,不知道会不会有人用的情况,可能就直接放弃了。
No more! 使用 Serverless 的方式,不用买服务器或者域名,只为使用量付费。让你尽情试验各种机器人的逻辑!
Serverless Reactor 为开发者提供快速上线飞书上机器人的体验。只需将怎么从输入(发给机器人的消息)产生输出(机器人回复的消息)的逻辑写成一段代码函数,然后把函数上传到 Serverless Reactor 上,就可以轻松上线一个机器人应用。
目前 Serverless Reactor 支持用当下最火的 Rust 语言写这样的函数。从下面的示例可以看出,我们使用最简单的 Rust 语法。你可以在玩飞书机器人的同时轻松学习 Rust 编程!而且,因为 Serverless Reactor 是用 Second State 的 WebAssembly 运行机器人程序,它在未来会支持 WebAssembly 支持的 20 几种编程语言。Rust 只是 Serverless Reactor 的第一步。
Serverless Reactor 对开发者创建的企业自建应用,不收取任何费用。
下面以一个计算器机器人应用为例,展示如何使用 Serverless Reactor 创建飞书应用上的机器人。
手把手教你如何用 Serverless的方式创建飞书机器人
请注意这里省略了在 Serverless Reactor 上填写飞书机器人应用参数的步骤,具体可以参照这篇文章。
Rust 代码
use wasm_bindgen::prelude::*;
use meval;
#[wasm_bindgen]
pub fn text_received(msg: String, _username: String, _step_data: String) -> String {
let x = meval::eval_str(&msg).unwrap();
return format!("{}", x);
}
这段代码是用 Rust 代码写的,用到了 meval
库,实现符号计算的功能。它用 format! 宏来排版输出(机器人回复消息)的字符串。
把 Rust 代码编译成 Wasm 文件,并上传到 Serverless Reactor 平台
在这一步,我们为您提供了一个在 Serverless Reactor 快速发布飞书机器人的函数模板,你可以选择 fork 这个 github repo 或者是把模板项目下载下来,进入模板项目的目录,修改 src/lib.rs
里的 Rust 函数,然后再使用 ssvmup 编译成 Wasm 文件。
具体步骤请见模板项目的 README.md
ssvmup build
将calculator_lib_bg.wasm
文件上传到 Serverless Reactor 平台,然后就得到了这个应用的 Service URL。
将 Service URL 填写到飞书需要 callback 的地方
将 Serverless Reactor 平台给出的 Service URL 填写到飞书开放平台事件订阅处的请求网址 URL。请注意,因为我们目前创建的应用是企业自建应用,需要在原 URL 的基础上,添加 /internal
以作区分。网址输入完成后,点击选择保存按钮,飞书开放平台将会发送成功提示。
示例:
- 从Serverless Reactor 处获取的 URL http://81.70.88.206:8081/606eb4825e0b44af1e40a
- 填写到飞书开放平台事件订阅处的 URL http://81.70.88.206:8081/606eb4825e0b44af1e40a/internal
上线机器人应用
最后一步就是根据飞书开放平台的文档,在版本管理与发布中发布你的机器人应用。
这样,一个小小的机器人就创建成功了,随时随地算数,不用花费一分钱。
最后,不要忘记使用 Serverless Reactor 创建机器人应用,并参与 Second State 与 CSDN合办的开源征文活动,就有机会获得 Apple Airtag、机械鼠标等奖品。