飞书机器人--前端文章推送

目的

每日推送新鲜的前端学习资料,供大家阅读、学习等;

技术栈

node(superagent、cheerio 等)+ 腾讯云云函数

开发流程

注:如果是自己公司搭建的飞书私服的话,则需要按照私服的文档进行开发即可

  • 进入飞书开发平台我的应用中申请注册一个 APP,然后系统会给分配一个 appid 以及 appsecret 用于后续校验、认证逻辑;

  • 在飞书群聊中添加所创建的机器人;

  • 打开飞书开发平台服务端 API,去获取应用的 tenant_access_token,用作 APP 的认证标识(所有请求都需要此标识作为认证依据);

  • 获取所有添加机器人的群列表,用于指定群发送信息;

  • 准备工作完成后,可以开始发送消息推送了,我这边选择的是发送富文本消息的模式,因为发送种类多,功能强大;

  • 发送到群里的消息大致长这样:因为目前是测试,不是真实数据,下面会用到真实数据;

爬虫(接口、页面)

上面已经实现了消息的推送,但是数据是假的,日常工作中我们肯定想要阅读高质量、标准的文章,所以要拿到好的数据源,这边选择的是掘金的 API作为数据源;使用superagent爬取接口数据,使用cheerio爬取页面数据,最终展示的效果为:

部署(腾讯云云函数)

目前代码只是运行在本地,这样肯定不行,需要跑在服务器中,而且我的需求是每天早晚需要推送一次,这就要用到定时任务了,所以我这边选择了腾讯云云函数部署,依托了腾讯云,我们只需要关注代码的开发,方便、快捷且收费很便宜;

  • 我这边选择的是 node8.9、空白模板,当然也可以选择更高的版本以及不同语言的模板函数;

  • 传建完成后:

  • 我们可以在线编辑代码或者选择 zip 上传代码:

注:这边需要注意的是我们的代码执行逻辑必须包含在 index.main_handler 这个函数中(当然也可以自定义函数名哈),且最后执行的结果必须返回一个 promise 对象,不然云函数不能识别;

  • 上传完后点击保存,就搞定了;

  • 最后点击触发信息添加定时任务

  • 我选择的是自定义触发任务,因为我想 9 点半触发一次,定时任务的语法使用的是 cron 表达式,最后点击提交即可;

可以看到每天 9 点半准时推送了!

到此我们的开发就完成了!

补充

除了上述通过调用接口的方式发送推送外,飞书还提供了 Webhook(网络钩子)的方式发送推送,不过功能过于单一,不太好用;