今天看啥  ›  专栏  ›  serverless 技术社区

用 Serverless 的方式,快速上线飞书机器人应用

serverless 技术社区  · CSDN  ·  · 2020-01-01 00:00

用 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);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这段代码是用 Rust 代码写的,用到了 meval 库,实现符号计算的功能。它用 format! 宏来排版输出(机器人回复消息)的字符串。

把 Rust 代码编译成 Wasm 文件,并上传到 Serverless Reactor 平台

在这一步,我们为您提供了一个在 Serverless Reactor 快速发布飞书机器人的函数模板 ,你可以选择 fork 这个 github repo 或者是把模板项目下载下来,进入模板项目的目录,修改 src/lib.rs 里的 Rust 函数,然后再使用 ssvmup 编译成 Wasm 文件。

具体步骤请见模板项目的 README.md

在这里插入图片描述

ssvmup build
  • 1
  • 1

calculator_lib_bg.wasm 文件上传到 Serverless Reactor 平台,然后就得到了这个应用的 Service URL。

在这里插入图片描述

将 Service URL 填写到飞书需要 callback 的地方

在这里插入图片描述
将 Serverless Reactor 平台给出的 Service URL 填写到飞书开放平台事件订阅处的请求网址 URL。请注意,因为我们目前创建的应用是企业自建应用,需要在原 URL 的基础上,添加 /internal 以作区分。网址输入完成后,点击选择保存按钮,飞书开放平台将会发送成功提示。

示例:

  1. 从Serverless Reactor 处获取的 URL http://81.70.88.206:8081/606eb4825e0b44af1e40a
  2. 填写到飞书开放平台事件订阅处的 URL http://81.70.88.206:8081/606eb4825e0b44af1e40a/internal

上线机器人应用

最后一步就是根据 飞书开放平台的文档 ,在版本管理与发布中发布你的机器人应用。

在这里插入图片描述

这样,一个小小的机器人就创建成功了,随时随地算数,不用花费一分钱。

最后,不要忘记使用 Serverless Reactor 创建机器人应用,并参与 Second State 与 CSDN合办的 开源征文活动 ,就有机会获得 Apple Airtag、机械鼠标等奖品。




原文地址:访问原文地址
快照地址: 访问文章快照