Skip to content

open-dingtalk/nodejs-getting-started

Repository files navigation

GitHub issues GitHub

nodejs-getting-started

钉钉酷应用体验项目Nodejs版本。

功能介绍

通过该demo案例可以学习酷应用在群聊场景的具体实现:

  • 通过免登码获取用户信息;
  • 通过机器人向群里发送普通消息;
  • 通过机器人向群里发送互动卡片;
  • 通过机器人向群里发送吊顶卡片;

使用

项目介绍

该项目分服务端和前端部分:

服务端侧采用midway(v3)框架,环境安装及midway相关开发可查看文档

前端项目在跟目标 /website下,前端采用 umi v3框架.

配置

案例中调用OpenApi需要appKey、appSecret等的入参信息需要通过钉钉自建应用来获取,获取应用配置信息步骤如下:

  1. 登录钉钉开发者后台;
  2. 选择或新建企业自建应用,进入应用详情-基本信息-应用信息页面获取appKey、appSecret;
  3. 进入应用详情 - 消息推送页面,配置机器人并拷贝RobotCode;
  4. 进入应用详情 - 酷应用,新建”扩展到群会话“酷应用,并拷贝酷应用编码;
  5. 通过开发者后台开放能力 - 互动卡片,获取对应于卡片模板ID;

所有配置信息放置在midway项目src/config/coolapp.config.json文件内:

  {
    "appKey": "dingrtxxxxxxx",
    "appSecret": "JfYpkbxxxxxxxxx",
    "robotCode": "dingxxxxxxxxx",
    "coolAppCode": "COOLAPP-1-xxxxxxxxx",
    "messageCardTemplateId001": "dde980a2-fb8a-446e-9b72-70c45317b076",
    "topCardTemplateId001": "a57e7f32-b3b1-4ef2-8c04-dce281cf3b7c"
}

5分钟快速体验,入口在钉钉开发者后台 - 首页。

  1. 根据官网引导创建酷应用;
  2. 下载项目,进入项目根目录,通过以下命令启动项目:
$ npm i
$ npm run dev
  1. 回到开发者后台,按引导下一步进入测试群,快捷入口"点击体验"即可打开本地启动的服务页面: http://127.0.0.1:7001/index.html

注意:以上命令采用了前端devserver + nodejs服务提供接口的方式来开发调试,既能享用前端热更新,服务端nodejs修改也可实时更新。如果需要调试nodejs代码,可参考midway调试方法

在群场景中使用酷应用时,向群里推送户动卡片需要获取到当前组织corpId和群id(openConversationId),此时可以通过群快捷入口的url配置占位符的方式拿到,如http://127.0.0.1:7001/index.html?openConversationId=$DOUBLE_ENCCID$&corpId=$CORPID$#/ ; 前端通过解析url query及可拿到corpId和openConversationId。

正式环境运行模式

正式环境时也可以采用nodejs服务做网关,加载前端资源来渲染页面的方式。更新前端页面后,需要重新编译(npm run website:build)后才会在体验页面中生效。

nodejs服务做网关运行方式如下:

  1. 前端项目在/website目录里进行构建:npm run build, 输出资源文件到website/dist目录;
  2. 服务端侧开启静态服务功能,并指向前端构建目录website/static 目录。
  staticFile: {
    dirs: {
      default: {
        prefix: '/',
        dir: 'website/static',
      },
    }
  },
  1. 服务端渲染模板 view/index.html里引用前端资源。

About

钉钉酷应用体验项目Nodejs版本

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published