《钉钉应用开发者速成手册》之“如何调用钉钉API——服务端API”

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 为了满足客户需求,钉钉目前主要提供了身份验证、通讯录管理、消息通知、智能办公四大类的服务端API接口给开发者使用。

身份验证

身份验证免登是指用户进入应用后,无需输入钉钉用户名和密码,应用程序可自动获取当前用户身份,进而登录系统的流程。身份验证的服务端API主要分为五部分,如下图所示:

image.png

  • 钉钉应用内免登实现企业内部或第三方企业应用免登,即企业员工在钉钉内使用企业内部应用或第三方企业应用时无需输入账号和密码。可通过以下步骤实现:
  1. 获取JSAPI免登授权码。
  2. 获取用户userId。
  3. 获取用户详情。
  • 管理后台免登应用管理后台免登指管理员在钉钉管理后台对应用进行设置和管理时,无需输入该应用的账号和密码,可直接登录应用的管理后台。可通过以下步骤实现:
  1. 获取免登授权码。
  2. 获取管理员身份信息。
  • 扫码登录实现扫码登录第三方网站。扫码登录指钉钉客户端扫码并确认登录web系统,在系统内获取正在访问用户的钉钉身份,无需输入账号密码的开发流程。提供了以下两种方式:
  • 直接使用钉钉提供的扫码登录页面。
  • 开发者可以将钉钉的登录二维码内嵌到自己的网站中,让用户进行扫码登录。
  • 钉钉内免登
    实现钉钉内免登第三方网站。钉钉内免登第三方网站指用户在钉钉客户端内点击H5网站链接时,无需输入账号密码系统自动获取正在访问用户钉钉身份。
  • 密码登录
    实现使用钉钉账号登录第三方网站。通过手动输入钉钉的账号密码,登录第三方独立的web系统,并获得正在访问用户的钉钉身份。

通讯录管理

通讯录是开发者接入钉钉时最常用到的一批接口,主要包含四大类接口,如下图所示:

说明

在调用通讯录相关接口前,请先添加对应的通讯录权限。开发者可以调用通讯录接口,将通讯录数据写到钉钉中,用于获取钉钉通讯录。如果企业想实时接收通讯录变更,可以注册钉钉的通讯录回调,实时接收通讯录的回调内容。

image.png

  • 用户管理
    包括增删改用户的接口,还可以获取部门下的用户,获取用户详情,获取管理员列表,跟进unionId获取userId,获取企业人数等接口。
  • 部门管理
    包括增删改部门,获取部门ID列表,获取部门详情,获取部门上级部门,获取用户上级部门等接口。
  • 角色管理
    角色分为角色和角色组,所以我们有增加删除修改角色,增加删除角色组合员工,获取角色组,获取角色列表和详情,获取角色下的员工列表等接口。
  • 外部联系人管理
    包括增删改外部联系人,获取外部联系人列表,详情,和标签列表等接口。

消息通知

消息通知主要分为三部分,如下图所示:

image.png

  • 工作通知消息是以企业工作通知会话中某个微应用的名义推送到员工的通知消息,例如审批通知,任务通知等。说明
  • 该接口是异步接口,接口返回成功并不表示用户一定会收到消息,需要通过 “查询工作通知消息的发送结果”接口查询是否发送成功。
  • 工作通知消息也有一些限流规则,具体规则可参考调用频率限制
  • 群会话消息
    是指可以调用接口,以系统名义向群里推送群聊消息。与之配合的是对应的创建群,更新群,获取群人员列表等服务端API接口。
  • 普通会话消息
    是指可以调用接口,以系统名义向群里推送群聊消息。与之配合的是对应的创建群,更新群,获取群人员列表等服务端API接口。

智能办公

智能办公包含以下七个部分,如下图所示:

image.png

  • 智能工作流
    包括发起审批实例,创建更新模板,创建更新待办,获取审批详情,审批回调,审批跳转,待办任务等接口。
  • 考勤
    可以获取考勤数据,获取请假数据,获取考勤组信息,获取排班信息等。
  • 日志
    可以获取日志数据,日志的已读、未读、评论、点赞等信息,获取日志模板。
  • 签到
    可以获取用户的签到记录
  • 智能填表
    可以获取企业智能填表的一些数据,还可以获取填表的一些模板。
  • 智能人事
    可查询待入职员工,查询在职员工,查询离职员工,还有获取花名册信息,添加待入职员工等接口。
  • 公告
    可以获取用户公告数据,包括公告的时间等。

如何调用服务端API

要调用API需要以下三个基础条件:

  • 钉钉应用
    钉钉应用作为您调用API时的身份,有AppKey和AppSecret用于验证您的身份。可以在钉钉开放平台应用开发页面创建应用,创建应用成功后,系统会自动生成AppKeyAppSecret
  • API
    在调用相关接口时,需要明确您即将需要调用的API相关参数定义。
  • 相关权限
    在调用相关接口前,您可能需要先申请对应的接口权限。您可以登陆钉钉开放平台,选择您创建的应用,选择权限管理,添加相应接口权限。

可通过以下步骤,完成服务端API接口的调用:

  1. 获取access_token。调用服务端API,首先要获取access_token。调用access_token的请求方式为GET(HTTPS),请求地址如下图所示,要输入两个参数appkey和appsecret。

说明

  • 正常情况下access_token的有效期是7200秒,有效期内重复获取会返回相同结果,并且自动续期。
  • POST请求必须在HTTP Header中设置对应的Content-Type:application/json。钉钉官方提供了统一的Java、PHP、.NET、Python对应的SDK,可参考服务端SDK下载

image.png

  1. 调用相关API接口。可通过以下方式调用服务端API接口:说明为了防止企业和ISV的应用程序错误从而引发钉钉服务器负载异常,默认情况下,每个服务端调用接口都会有一定的频率限制。当超过此限制时,调用接口会收到对应的错误码。限流规则可参考调用频率限制
  • 方式一:使用API文档中提供的SDK示例代码进行调用。
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
OapiGettokenRequest request = new OapiGettokenRequest();
request.setAppkey("appkey");
request.setAppsecret("appsecret");
request.setHttpMethod("GET");
OapiGettokenResponse response = client.execute(request);
System.out.println(response.getBody());
  • 方式二:自行编辑HTTP(s)请求来调用API。
请求方式: GET/POST(HTTPS)
请求地址: https://oapi.dingtalk.com/gettoken?appkey=appkey&appsecret=appsecret
请求包体:
...
参数说明:
...
SDK请求示例:
...
返回结果
...
  • 请求方式:接口有HttpGet/HttpPost两种方式。所有的请求都为HTTPS协议。
  • 请求地址:都以oapi.dingtalk.com开头。
  • 参数说明:包括字段含义、取值范围。比如HttpPost的请求包体就是request body的方式。
  • SDK请求示例:使用SDK时调用接口的Java代码示例。
  • 返回结果:钉钉所有接口的返回结果里都有errcode、errmsg。开发者需根据errcode是否为0判断是否调用成功。errcode为0表示调用成功,不为零表示失败,会生成对应的errmsg。开发平台文档上还有全局错误码,针对每个echo都会有一个对应解决方案的描述。
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
API
钉钉宜搭--远程API,在其他人访问时无法生效
简介: 描述了一种远程API配置问题的场景。开发人员在本地可正常通过应用表单获取数据,但同组织的其他同事访问时无法获取数据,尽管已设置全部权限。问题是关于如何解决这种跨用户数据访问异常的情况,确保同事间能正常共享数据。
|
7月前
|
人工智能 数据可视化 API
10 分钟构建 AI 客服并应用到网站、钉钉或微信中测试评
10 分钟构建 AI 客服并应用到网站、钉钉或微信中测试评
224 2
|
8月前
|
人工智能
10 分钟构建 AI 客服并应用到网站、钉钉或微信中简说
10 分钟构建 AI 客服并应用到网站、钉钉或微信
|
6月前
|
Java API 开发工具
API参考手册
【10月更文挑战第18天】API参考手册
188 2
|
7月前
|
人工智能 运维 负载均衡
10 分钟构建 AI 客服并应用到网站、钉钉或微信中
《10分钟构建AI客服并应用到网站、钉钉或微信中》的解决方案通过详尽的文档和示例代码,使具有一定编程基础的用户能够快速上手,顺利完成AI客服集成。方案涵盖高可用性、负载均衡及定制化选项,满足生产环境需求。然而,若文档不清晰或存在信息缺失,则可能导致部署障碍。实际部署中可能遇到网络、权限等问题,需逐一排查。云产品的功能、性能及操作配置便捷性直接影响解决方案效果,详尽的产品手册有助于快速解决问题。总体而言,该方案在各方面表现出色,值得推荐。
|
7月前
|
小程序 Android开发 iOS开发
ISO钉钉小程序小程序webview打开nextjs应用异常
ISO钉钉小程序小程序webview打开nextjs应用异常
96 3
|
9月前
|
分布式计算 运维 DataWorks
DataWorks产品使用合集之如何查看数据服务API发布后的服务端日志
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
10月前
|
JSON 安全 API
实战指南:使用PHP构建高性能API接口服务端
构建RESTful API的简要指南:使用PHP和Laravel,先安装Laravel并配置数据库,接着在`api.php`中定义资源路由,创建`PostController`处理CRUD操作,定义`Post`模型与数据库交互。使用Postman测试API功能,如创建文章。别忘了关注安全性、错误处理和性能优化。
257 2
|
9月前
|
开发框架 前端开发 应用服务中间件
部署基于.netcore5.0的ABP框架后台Api服务端,以及使用Nginx部署Vue+Element前端应用
部署基于.netcore5.0的ABP框架后台Api服务端,以及使用Nginx部署Vue+Element前端应用
|
10月前
|
jenkins 机器人 测试技术
jenkins接入钉钉api接口自动化测试报告自动发送
该教程介绍了如何在Jenkins上实现接口自动化测试的持续集成,并将可视化报告发送至钉钉工作群。首先,确保准备好了自动化脚本。接着配置Jenkins:安装Git插件,设置源代码管理(如Git)和触发器(定时或推送)。使用Post build task插件处理构建后的报告,读取Allure的prometheusData.txt文件以获取测试结果。最后,安装Ding Talk插件,配置钉钉机器人,通过 Dingtalkchatbot 库发送测试报告信息到钉钉群。整个流程包括Jenkins的定时构建、Git仓库的监听以及自动化报告发送到钉钉的通知。
下一篇
oss创建bucket