服务端SDK下载.md 14 KB

服务端SDK下载

更新于 2026-07-24钉钉官方提供了统一的SDK,使用SDK可以便捷地调用服务端API。

重要

在使用钉钉接口前,请先确认接口版本(新版或旧版),然后下载对应版本的 SDK 或引入对应的 Maven 依赖进行调用:注意:新旧两个版本的 SDK 不可混用。

新版API VS 旧版API

为提升接口使用体验并提供更规范的开发标准,钉钉开放平台对服务端API进行了规范升级。目前平台同时支持旧版服务端API(基于旧版规范)和新版服务端API(基于新版RESTful风格规范)。建议新应用优先接入新版API以获得持续的能力更新和技术支持。

说明

旧版服务端API与新版服务端API所开放的产品能力不完全一致。请根据业务需求选择合适的API版本。已有应用可继续使用旧版API,但新增功能推荐使用新版API。

标识的差异

  • 旧版接口的访问域名为https://oapi.dingtalk.com/,如下图所示:

  • 新版接口的访问域名为https://api.dingtalk.com/v1.0表示当前接口版本,如下图所示:

如何选择SDK

API版本 旧版服务端API 新版服务端API
SDK 使用旧版服务端SDK,旧版支持版本:Java、PHP、Python、.NET、.NET Core。 使用新版服务端SDK,新版支持版本:Java(支持通过Maven安装)、Node.js、PHP、Go、C#、Python。
开放的产品能力 - 现状:旧版服务端API和新版服务端API开放的产品能力不同,即新版服务端API未包含全部的服务端API的产品能力,请根据实际需求,选择需要的API接入。
  • 计划:后续将逐步把旧版API迁移至新版规范,最终实现功能全覆盖。 | - 现状:旧版服务端API和新版服务端API开放的产品能力不同,即新版服务端API未包含全部的服务端API的产品能力,请根据实际需求,选择需要的API接入。

  • 计划:后续将逐步把旧版API迁移至新版规范,最终实现功能全覆盖。 | | 是否开放新能力 | 不再开放新能力。 | 持续开放新能力。 | | 是否推荐 | 已接入的应用可继续使用,接口不会下线。 | 若新版本存在对应接口,推荐接入新版服务端API。 |

新版服务端SDK

新版SDK基于阿里云OpenAPI规范构建,推荐新项目优先使用。支持多语言接入,可通过包管理工具快速集成。

请求示例

新版SDK与旧版SDK有所差别,以下是关于新版接口的使用示例,以创建日程为例:

  /**

     * 使用 Token 初始化账号Client

     * @return Client

     * @throws Exception

     */

    public static com.aliyun.dingtalkcalendar_1_0.Client createClient() throws Exception {

        com.aliyun.teaopenapi.models.Config config \= new com.aliyun.teaopenapi.models.Config();

        config.protocol \= "https";

        config.regionId \= "central";

        return new com.aliyun.dingtalkcalendar_1_0.Client(config);

    }

    public static void main(String[] args_) throws Exception {

        java.util.List args \= java.util.Arrays.asList(args_);

        com.aliyun.dingtalkcalendar_1_0.Client client \= Sample.createClient();

        com.aliyun.dingtalkcalendar_1_0.models.CreateEventHeaders createEventHeaders \= new com.aliyun.dingtalkcalendar_1_0.models.CreateEventHeaders();

        createEventHeaders.xAcsDingtalkAccessToken \= "";

        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestRichTextDescription richTextDescription \= new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestRichTextDescription()

                .setText("测试测试热热热单独的啊啊啊事实上");

        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestUiConfigs uiConfigs0 \= new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestUiConfigs()

                .setUiName("updateEventButton")

其他语言示例代码,可参考具体接口文档中的示例模块,我们提供了HTTP、Java、Python、PHP、Go、Node.js、C#等多种方式调用。

SDK下载与依赖

  • Java

    方式一:通过Maven安装DingTalk OpenAPI Java SDK

    添加依赖项到pom.xml的文件中,建议始终使用最新版本以获得功能更新与安全修复。

    说明

    并请替换下方代码中的{version},并填写最新Maven版本2.2.59,最新版本可前往Maven库查看。

     com.aliyun

     dingtalk

     {version}

    方式二:通过下载SDK安装包进行安装。

  • Go

    在命令行中,执行以下命令安装DingTalk OpenAPI Go SDK。

    go get -u github.com/alibabacloud-go/dingtalk/

  • C#

    方式一:使用dotnet来安装C# SDK,最新的SDK版本可以在这里查看。

    dotnet add package AlibabaCloud.SDK.Dingtalk

    方式二:通过下载SDK安装包进行安装。

  • PHP

    方式一:使用composer工具进行安装。

    composer require alibabacloud/dingtalk

    方式二:通过下载SDK安装包进行安装。

  • Node.js

    方式一:执行以下命令,使用npm安装依赖。

    npm install @alicloud/dingtalk --save

    方式二:通过下载SDK安装包进行安装。

  • Python

    方式一:执行以下命令,使用pip安装包依赖。

    pip install alibabacloud_dingtalk

    方式二:通过下载SDK安装包进行安装,Python SDK适用于Python 3.0及以上版本。

旧版服务端SDK

旧版SDK基于早期架构设计,仅用于兼容历史接口(URL包含 /topapi/)。新项目建议使用新版SDK。

请求示例

下面是使用SDK调用API的请求示例:

  • Java

    DingTalkClient client \= new DefaultDingTalkClient("https://oapi.dingtalk.com/user/get");

    OapiUserGetRequest req \= new OapiUserGetRequest();

    req.setUserid("userid1");

    req.setHttpMethod("GET");

    OapiUserGetResponse rsp \= client.execute(req, accessToken);

  • PHP

    include "TopSdk.php";

    // DingTalkConstant::$METHOD_GET 要与下面调用接口url要求的保持一致

    $c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_GET , DingTalkConstant::$FORMAT_JSON);

    $req = new OapiUserGetRequest();

    $req->setUserid("userid1");

    $resp=$c->execute($req, $accessToken,"https://oapi.dingtalk.com/user/get");

    var_dump($resp)

  • Python

    import dingtalk.api

    request = dingtalk.api.OapiGettokenRequest("https://oapi.dingtalk.com/user/get")

    request.userid="userid1"

    response = request.getResponse()

    print(response)

  • Node

    let { Config, OapiProcessinstanceGetParams, OapiProcessinstanceGetRequest } \= require('./client.js');

    let Client \= require('./client.js').default

    // import Client,{ Config, GetOapiProcessinstanceParams, GetOapiProcessinstanceRequest } from "./client.js";

    async function test() {

      const config \= new Config()

      config.serverUrl \= 'https://oapi.dingtalk.com/topapi/processinstance/get'

      config.session \= 'access_token'

      const params \= new OapiProcessinstanceGetParams();

      params.processInstanceId \= '23aa6xxxxc1b56c'

      const request \= new OapiProcessinstanceGetRequest()

      request.params \= params

      const client \= new Client(config)

      try {

        const res \= await client.oapiProcessinstanceGet(request)

        console.log(res.body)

      } catch (err) {

        console.log(err)

      }

    }

    test()

  • .NET

    IDingTalkClient client \= new DefaultDingTalkClient("https://oapi.dingtalk.com/user/get");

    OapiUserGetRequest req \= new OapiUserGetRequest();

    req.Userid \= "userid1";

    req.SetHttpMethod("GET");

    // accessToken 参数是需要通过https://open.dingtalk.com/document/development/obtain-orgapp-token接口获取

    OapiUserGetResponse rsp \= client.Execute(req, access_token)

请求示例说明

  1. 初始化Client对象:设置目标接口的完整URI。通常无需手动拼接 access_token 等参数;但部分POST接口可能需在URL中附加非token类参数。

  2. 构造Request对象:命名规则一般为 Oapi + 接口路径驼峰形式 + Request。例如 /user/get 对应 OapiUserGetRequest

  3. 设置请求参数:调用对应setter方法赋值。注意默认HTTP方法为POST,若接口为GET,需显式调用 setHttpMethod("GET")

  4. 执行请求:调用 client.execute(req, access_token) 发起调用。对于获取token类接口(如 /gettoken/sns/gettoken/service/get_suite_token),调用时无需传入token。

  5. 处理响应:返回结果为与Request对应的Response对象,可从中提取业务数据或错误信息。

SDK下载与依赖

环境依赖

  • Java SDK 需要依赖 Java SE/EE 1.5及以上

  • .NET SDK 需要依赖 .NET Framework 2.0及以上 (不支持Windows Phone平台)

下载地址