1、完成钉钉与腾讯会议sso配置,完成配置后,钉钉用户账号和组织架构会同步到腾讯会议后台,两个系统的userid字段保持一致。参考:腾讯会议商业版2.0对接SSO说明文档V1.0。
2、服务器已经部署好linux操作系统,并且完成nodejs环境安装。
整体开发配置如上图,文章最后提供的工程完成了腾讯会议和钉钉API对接开发,本文主要介绍的是如何完成腾讯会议和钉钉后台的配置,以及如何启动工程。
1、使用腾讯会议管理员账号登录企管平台,在左侧的企业管理 - 高级 - 企业自建应用菜单点击进入应用设置页面。点击创建应用,同步会议信息到钉钉需要监听用户从腾讯会议客户端创建的会议事件消息,因此这里应用类型选择企业级。
2、基础信息和凭证,填写对应信息,然后进行下一步。
3、应用安全和可用范围,白名单处填写部署的服务所在机器的公网出口IP,如果公网出口IP有多个时需要都配置上。应用可用范围与钉钉应用的保持一致即可。
4、事件订阅,EncodingAESKey和Token复制到项目工程服务端的配置文件中,URL为后端服务所在的地址+端口+路径(路径为/api/webhook)。需要订阅的事件消息类型与截图中保持一致。
1、使用钉钉管理员账号登录钉钉开放平台,点击创建应用按钮创建一个应用。
2、填写应用名称,应用描述并上传应用图标。
3、为应用添加网页应用和机器人能力。
4、网页应用配置,这里配置的应用首页地址为移动端点击应用打开的URL,PC端首页地址为PC端点击应用后打开的地址。目前钉钉已有的能力只支持PC端跳转腾讯会议客户端,移动端不支持,因此两者的实现方式不一样,这里首页配置也不相同。配置的时候需要注意,URL前后不要有空格,否则后续应用配置无法生效。
5、机器人配置,填写必填的内容即可,只用到了消息推送接口,没有消息接收功能。
6、权限管理设置,需要用到的钉钉接口权限如下,需要都勾上。授权范围根据实际需求选择。
权限类型 | 权限信息 | 使用的接口 | 权限点code | 用途 |
---|---|---|---|---|
个人权限 | 日历应用中日程写权限 | 创建日程 修改日程 删除指定日程 新增日程参与人 删除日程参与人 | Calendar.Event.Write | 将会议信息同步到钉钉日程 |
个人权限 | 调用SNS API时需要具备的基本权限 | 查询个人授权记录 | snsapi_base | 默认开通 |
通讯录管理 | 通讯录部门信息读权限 | 无 | qyapi_get_department_list | 应用配置权限范围需要勾选 |
通讯录管理 | 成员信息读权限 | 查询用户详情 根据unionid查询用户 | qyapi_get_member | 钉钉部分接口使用userid,部分接口使用unionid,因此需要调用接口转换id |
待办任务 | 待办应用中待办写权限 | 创建待办 删除钉钉待办任务 | Todo.Todo.Write | 将会议信息同步到待办 |
考勤 | 调用企业API基础权限 | 获取企业accessToken(企业内部应用) 生成jsapi ticket 自定义机器人接入发送消息 | qyapi_base | 默认开通 |
机器人 | 企业内机器人发送消息权限 | 人与人会话中机器人发送普通消息 | qyapi_robot_sendmsg | 发送云录制完成消息 |
7、安全设置,这里服务器出口IP按需设置,重定向URL填写应用首页地址。
8、版本管理与发布,点击创建新版本,填写相关信息后保存发布。
在启动应用前,需要完成服务端和网页端工程的启动参数配置。
配置文件所在的路径为/server/server_config.js。
dingtalkCorpId: "ding14864b9xxxxfcb1e09", // 钉钉CorpId
dingtalkAppId: "adba01ed-c16bxxxxe05a", // 钉钉App ID
dingtalkAgentId: "358xxx8805", // 钉钉AgentId
dingtalkClientId: "dinglti2iwaxxxu8ciz", // 钉钉clientID(原 AppKey 和 SuiteKey)
dingtalkClientSecret: "ZAKgj-FkxxxxhYLb", // 钉钉clientSecret(原 AppSecret 和 SuiteSecret)
dingtalkRobotCode: "dinglti2ixxxu8ciz", // 钉钉机器人code
wemeetAPPID: "218xxx147", // 腾讯会议应用APPID
wemeetRestAPISDKID: "287xxx4015", // 腾讯会议应用SDK ID
wemeetRestAPISecretID: "FraK7pxxxxxJOyjpenR8TVG", // 腾讯会议API应用Secret ID
wemeetRestAPISecretKey: "qSXpIh2CyGFxxxxxxiVu6F2jZIHQQM", // 腾讯会议API应用Secret Key
wemmetWebhookToken: "UgvPiqEVxxxxxkBVl89", // 腾讯会议webhook回调token
wemeetWebhookAESKey: "Tks9gchzv1yFxxxxxxx2zCtksiI", // 腾讯会议webhook回调AES密钥
wemeetSSOURL: "https://oauth2.account.tencent.com/v1/sso/jwtp/129xxx99/1306xxx948/kit/meeting", // 腾讯会议oneid免登链接前缀地址
获取参数的具体位置如下:
1)在钉钉应用设置 - 基础信息 - 凭证与基础信息页面,获取钉钉CorpId、钉钉App ID、钉钉AgentId、钉钉clientID、钉钉clientSecret参数。
2)在钉钉应用设置 - 应用能力 - 机器人页面,点击复制RobotCode获取钉钉机器人code参数。
3)在腾讯会议自建应用设置 - 基础信息和凭证页面,获取腾讯会议APPID、腾讯会议应用Secret ID、腾讯会议API应用Secret ID和腾讯会议API应用Secret Key参数。
4)在腾讯会议自建应用设置 - 事件订阅页面,获取腾讯会议webhook回调token和腾讯会议webhook回调AES密钥参数。
5)使用超管账号登录腾讯会议企管平台,在企业管理 - 用户管理 - 用户列表页面点击用户列表管理按钮进入oneid设置页面。
6)在登录 - 认证源页面点击添加认证源,选择JWT 。
7)Issuer字段填meeting,将登录链接复制保存下来,链接的内容为“https://oauth2.account.tencent.com/v1/sso/jwtp/129xxx99/1306xxx948/kit/{app_type}”,将{app_type}替换成meeting,得到的新链接“https://oauth2.account.tencent.com/v1/sso/jwtp/129xxx99/1306xxx948/kit/meeting”即为wemeetSSOURL,将其填写到服务端配置文件中。
点击生成新的密钥对并下载,得到私钥文件。将文件名改为“rsa_private_key.pem”。
8)关联规则配置与下图保持一致即可。
配置文件所在的路径为/src/config/client_config.js。
corpId: "ding14864bxxxxxca6a39a90f97fcb1e09", // 钉钉CorpId
clientId: "dinglti2ixxxxxu8ciz", // 钉钉clientID(原 AppKey 和 SuiteKey)
apiPort: "7001", // 后端指定端口,默认与服务端配置文件中的后端服务端口保持一致,如果服务部署时公网服务端口和内网服务端口不一致,该配置项设置为公网服务端口
在在钉钉应用设置 - 基础信息 - 凭证与基础信息页面,获取钉钉CorpId和钉钉clientID参数。
将前面获取到的rsa_private_key.pem文件保存到工程目录下的“/server/key”路径下。
1、在工程目录输入npm install命令,完成依赖库的安装
npm install
2、输入npm run start命令启动程序
npm run start
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。