调用钉钉接口操作手册
一、准备工作
名词解释
钉钉开发过程中遇到的名词的阐释.
https://open-doc.dingtalk.com/microapp/index/kv5e1t
获取CorpID
CorpID是企业在钉钉中的标识,每个企业拥有唯一的CorpID。
操作路径:登入OA管理后台(https://oa.dingtalk.com)→企业应用→工作台设置→自建应用→“应用开发”进入开发者后台→首页
获取CORPSECRET
考虑到CorpSecret属于企业的机密信息,此次针对获取CorpSecret权限做了控制,实现可按需灵活分配的效果;由企业主管理员根据实际场景的需要来进行设置(比如公司财务部需定制一套财务系统,则将财务经理设置为企业子管理员,管理范围为财务部,授予开发者权限,财务经理在开发者后台即可为财务部生成CorpSecret提供给开发者,也可将企业内信息管理负责人设置为子管理员授予开发权限,管理公司各部门CorpSecret)。
获取AgentId
代表应用和企业映射关系的ID(应用在企业开通后的开通记录ID),同一个ISV应用在不同企业的agentId不一致。
操作路径:登入OA管理后台(https://oa.dingtalk.com)→企业应用→工作台设置→自建应用→“应用开发”进入开发者后台
详解:
1.登入oa管理后台,点击“工作台”,点击“自建应用”。
2.跳转到开发者后台,单击”创建应用”,填入应用基本信息,选择“企业内部自主开发”
3.在应用类型处选择”企业内部应用”
4.添加完基本信息以后,单击下一步
5.配置开发信息
服务器出口IP: 124.236.xxx.xx
在填写IP地址的时候IP地址可以写成上面的形式,也可以写成124.236.xxx.*
6.点击创建以后,该E应用创建完成.回到应用列表我们即可看见我们创建的E应用.
AgentID: #企业应用id,这个值代表以哪个应用的名义发送消息
如何获取Access_Token
Access_Token是企业访问钉钉开放平台全局接口的唯一凭证,即调用接口时需携带Access_Token。
对于企业接入来说,AccessToken需要用CorpID和CorpSecret来获取,CorpID是企业在钉钉中的标识;每个企业拥有一个唯一的CorpID,CorpSecret是企业每个微应用的凭证密钥。
CorpID和CorpSecret可以在开发者后台中找到,参见此链接。
不同的CorpSecret会返回不同的AccessToken。正常情况下AccessToken有效期为7200秒,有效期内重复获取返回相同结果,并自动续期。
说明:获取Access_Token有两种方法:
第一种:通过CorpID和CorpSecret来获取(微应用的)
第二种: 获取内部应用的appKey和appSecret来获取(E应用的)
CorpID和CorpSecret, appKey和appSecret在管理员后台都可以获取.
请求说明
请求方式:GET
接口地址:https://oapi.dingtalk.com/gettoken?corpid=id&corpsecret=secrect
参数 | 参数类型 | 必须 | 说明 |
corpid | String | 是 | 企业Id |
corpsecret | String | 是 | 企业应用的凭证密钥 |
返回说明
- 正确的Json返回结果:
1 2 3 4 5 | { "errcode": 0, "errmsg": "ok", "access_token": "fw8ef8we8f76e6f7s8df8s" } |
参数 | 说明 |
errcode | 错误码 |
errmsg | 错误信息 |
expires_in | 过期时间 |
access_token | 获取到的凭证 |
b)错误的Json返回示例:
1 2 3 4 | { "errcode": 43003, "errmsg": "require https" } |
具体的方法会在接下来的项目应用部分展示.
二、项目应用
以下代码是实现功能的主要代码
引用的jar包
<!--钉钉开发-->
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.40</version>
</dependency>
<dependency>
<groupId>com.dingtalk.open</groupId>
<artifactId>client-sdk.api</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>com.dingtalk.open</groupId>
<artifactId>client-sdk.core </artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.dingtalk.open</groupId>
<artifactId>client-sdk.common</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.dingtalk.open</groupId>
<artifactId>client-sdk.spring</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.dingtalk.open</groupId>
<artifactId>client-sdk.example</artifactId>
<version>1.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.ning/async-http-client -->
<dependency>
<groupId>com.ning</groupId>
<artifactId>async-http-client</artifactId>
<version>1.9.32</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
三、总结
基本信息
现在已经获取到的公司后台的信息如下:
CorpID
CORPSECRET
项目AGENTID
开发前必读
钉钉接口地址
https://open-doc.dingtalk.com/microapp/serverapi2/gh60vz