ServerLess+Node框架实现钉钉机器人简单复读

ServerLess+Node框架实现钉钉机器人简单复读

申请钉钉开发者账号

https://open-dev.dingtalk.com
非管理员的话需要注册团队

填写好信息后,完成,进入开发者后台。

点击 应用开发-机器人-创建新机器人

填写相关信息后,创建机器人。

进入机器人后台 点击 版本管理与发布-调试

回到钉钉客户端,会发现已新建一个群聊,类似***-TEST,点击 群设置-智能群助手-刚刚创建的机器人-就能获取到一个Webhook,留作后面备用。

新建应用

https://workbench.aliyun.com/application

依次选择 技术场景-WEB-Midway Serverless 一体化解决方案-下一步。

开发部署


稍等片刻后,即可进入开发部署(云IDE)

安装依赖

1
2
npm i
npm i axios --save

后面需要用到axios,因此顺手安装好了。

修改代码

修改f.yml文件

1
2
3
4
5
6
7
8
9
10
11
  list:
handler: list.handler
events:
- apigw:
path: /api/list
# 上面是已有代码,需要补充下面的代码
ding:
handler: ding.handler
events:
- apigw:
path: /api/ding

修改index.ts文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//import { Provide, Func } from  '@midwayjs/decorator' 
import { Provide, Func ,Inject} from '@midwayjs/decorator'
import axios from 'axios';

//export class IndexService { class后增加两行
@Inject()
ctx;

//上一个Func后新增函数
@Func('ding.handler')
async ding() {
const hook = '上文获取到的Webook'
const body = this.ctx.request.body;
await axios.post(hook, {
msgtype: 'markdown',
markdown: {
title: 'test',
text: 'TEST 你刚刚说的是' + body.text.content,
}
});
}

运行项目

1
npm run dev

运行后, 会看到控制台有一行类似 c59de-68bc-424c-9b1c-9190050fcdf3-3000.xide.aliyun.com 的链接,复制到钉钉开发者后台。

点击 开发管理-修改,消息接收地址里填入上面获取到的链接 + /api/ding

访问 https://www.baidu.com/s?wd=ip 获取当前IP,填进服务器出口IP即可。

完成


回到钉钉客户端,@机器人 +你想说的话,即可看到机器人已复读成功。