koishi配置钉钉机器人

本文最后更新于 2024年5月16日。

操作教程

  1. 前往 开放平台 > 应用开发 > 钉钉应用 并点击「创建应用」,输入相关信息确定创建
  2. 在跳转至的页面,选择添加「机器人」;勾选「机器人配置」,输入相关信息;消息接收模式选择 Stream 模式 时,插件的 protocol 选择 ws,选择 HTTP 模式 时,将机器人的 selfUrl 值后连接 /dingtalk (如 https://example.com/dingtalk) 填入钉钉平台的消息接收地址,插件的 protocol 选择 http;最后点击发布按钮
  3. 在左侧打开「凭证与基础信息」页面,将 Client ID 填入插件的 appkey 字段,将 Client Secret 填入插件的 secret 字段。
  4. (可选) 为了在控制台中显示应用名称与头像,请参照 添加接口调用权限 操作,申请 qyapi_get_microapp_list 权限;在左侧打开「添加应用能力」,选择添加「网页应用」。将「企业内部应用 AgentId」填入插件的 agentId 字段

注意

appkey和secret的内容不要写反,不然连接不上,另外,钉钉机器人状态一定要发布才能生效。
按照教程配置前三步就可以使用了。
不过插件运行日志会报错误

`2024-01-19 13:10:20 [W] dingtalk Error: [403] {"code":"Forbidden.AccessDenied.AccessTokenPermissionDenied","requestid":"B151D9BC-43DB-7EB0-AEC2-341174962B5E","message":"没有调用该接口的权限,接口权限申请参考:https://open.dingtalk.com/document/orgapp-server/add-api-permission","accessdenieddetail":{"requiredScopes":["qyapi_get_microapp_list"]}} at _Internal.<computed> [as listAllInnerApps] (/koishi/node_modules/@satorijs/adapter-dingtalk/lib/index.js:368:21) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async _DingtalkBot.getLogin (/koishi/node_modules/@satorijs/adapter-dingtalk/lib/index.js:399:27) at async _WsClient.prepare (/koishi/node_modules/@satorijs/adapter-dingtalk/lib/index.js:282:5) at async reconnect (/koishi/node_modules/@satorijs/core/lib/index.cjs:450:24)`

`2024-01-19 13:10:20 [I] adapter connect to server: wss://wss-open-connection.dingtalk.com/connect`

所以准备申请第四步的权限。
但是该权限需要组织管理员同意,所以决定自己创建组织。
创建组织之后就能顺利启用了。
然后开启网页应用能力,接入网站,就可以在钉钉应用中的自建应用类别中看到自己的应用。

安装插件

@koishijs/plugin-adapter-dingtalk

在钉钉开发平台创建应用

https://open-dev.dingtalk.com/
设置名称等基础信息。
消息使用Stream 模式,方便简单。