钉钉企业应用开发

Updated on with 0 views and 0 comments

主要参考和查阅钉钉官方文档:https://open-doc.dingtalk.com
因为是公司内部应用,使用企业内部开发文档即可


image.png


由公司的系统管理员登录企业钉钉后台创建应用,创建的时候会相应配置好域名、服务器出口、可使用范围等等,创建成功后会生成相应后 appkey 和 appsecret,由系统管理员提供,钉钉改版较快,文档并没有及时更新。通过测试得知 appkey=corpid,appsecret=corpsecret,这样请求接口才成功。

钉钉 API 请求前缀 https://oapi.dingtalk.com
例如 gettoken 接口是 https://oapi.dingtalk.com/gettoken 其他类推

流程分为 2 步
第 1 步:通过 corpId 和 corpsecret 请求钉钉 gettoken 接口获取 accesstoken,accesstoken 作为请求其他接口的凭证
第 2 步:根据下图前端使用 jsapi 获取免登授权码 authcode


image.png


由前端传递 authcode,后端进行处理,由 authcode 和 accesstoken 请求 getuserinfo 接口获取当前登录用户企业唯一 id,也就是 userid。
(需要注意的是免登授权 authcode 的有效时间比较短,且只能由前端发起请求,每次使用之后会失效,下次由前端再次发起请求即可)


image.png


根据上面获取的 userid 和 accesstoken 请求钉钉 get 接口 获得用户详细信息


image.png


获取用户详细信息根据需要进行使用

并且系统管理员开启通讯录权限有两个地方需要开启

  1. 通讯录设置开启
  1. 选择人员范围,也就是选择哪些人或哪些部门可以被钉钉 API 获取该人员的信息

后端技术

环境

JDK开发工具数据库
1.8.0_121IntelliJ IDEA 2017.1MySQL 5.6

框架

  • Spring boot
  • MyBatis
  • lombok
  • gson
  • retrofit

前端技术不是很熟

前端技术

  • react
  • react-redux
  • react-router-dom
  • redux
  • react-dom

鉴于钉钉开发文档部分未及时更新,以上大部分为实践所得,可能不尽完善。