程序员必备:C#对接钉钉API 实战教程
作者:15726608245 · 2025-04-10 · 阅读时间:6分钟
本文将介绍如何使用 C
语言对接钉钉开放平台 API,获取公司部门数据,以及人员的数据。
一、准备工作
- 没有钉钉开发者账号:
- 【注册钉钉开发者账号】:访问 钉钉开放平台 并注册开发者账号。
- 【创建应用】:登录开发者后台,创建企业内部应用,获取 AppKey 和
AppSecret。
- 对接客户钉钉数据:需要客户提供 AppKey:钉钉应用的唯一标识key、AppSecre:钉钉应用的密钥、AgentId:钉钉应用ID。
- 添加接口调用权限:调用钉钉服务端接口前,需要先添加所需接口的调用权限,应用创建后,系统默认添加身份验证和消息通知接口权限。接口权限是以应用为维度授予的,每个应用的接口权限都是独立存在的,如果多个应用都需要调用同一个接口,那么每个应用都要添加相对应的接口调用权限。https://open.dingtalk.com/document/orgapp/add-api-permission
二、获取 AccessToken
AccessToken 是调用钉钉 API 的凭证,需要使 AppKey 和 AppSecret 获取。获取token的方法如下:

钉钉参数类

给获取token包一层方法,供外部调用,方法内部加入缓存设计,这样就不用每次都生成新的token,提升性能,减少请求网络带来的资源消耗。

关于token操作的类代码如下:
public class Token
{
///
/// 到期时间(防止时间差,提前1分钟到期)
///
///
///
public static DateTime TookenOverdueTime(DingToken token)
{
return token.CreateTokenTime.AddSeconds(token.Expires_in - 60);
}
///
/// 是否超时
///
///
///
public static bool IsTimeOut(DingToken token)
{
return DateTime.Now >= TookenOverdueTime(token);
}
///
///
///
///
public static async Task GetNewToken(DingConfig dingConfig)
{
string strulr = "https://oapi.dingtalk.com/gettoken?appkey={0}&appsecret={1}";
string appkey = dingConfig.DingAppKey; //应用的唯一标识key
string appsecret = dingConfig.DingAppSecret;//应用的密钥
HttpHelper http = new HttpHelper();
string respone = await http.Get(string.Format(strulr, appkey, appsecret), Encoding.UTF8);
var token = respone.ToObject();
token.CreateTokenTime = DateTime.Now;
return token;
}
///
/// 获取token
///
///
public static async Task GetToken(DingConfig dingConfig)
{
var cache = IocManager.Instance.GetService();
string key = "${dingConfig.DingAppKey}_${dingConfig.DingAppSecret}_${dingConfig.DingAgentId}";
//读取缓存token
var dingDingToken = cache.Read(key);
if (dingDingToken == null || IsTimeOut(dingDingToken)) {
dingDingToken = await GetNewToken(dingConfig);
//写入缓存token
cache.Write(key, dingDingToken);
}
return dingDingToken.Access_token;
}
}
public class DingToken{
///
/// access_token
///
public string Access_token { get; set; }
///
/// 过期时间
///
public int Expires_in { get; set; }
///
/// 创建时间
///
public DateTime CreateTokenTime { get; set; }
}
三、获取部门列表
- 代码Demo:

- 以下为实际项目开发截图(集成到项目中的运用)

同步部门数据,在实例化时赋值,就是调用钉钉API时的Url连接。



四、获取部门下人员列表
- 代码demo:

- 以下为实际项目开发截图(集成到项目中的运用)

同步用户数据,在实例化时赋值,就是调用钉钉API时的Url连接。

调api获取用户数据

写业务逻辑

五、.NET Core API
- demo实例调用:

- 以下为实际项目开发截图(集成到项目中的运用)同步部门

同步用户

六、总结
本文介绍了如何使用 C
语言对接钉钉开放平台 API,获取公司部门,人员的数据。主要步骤包括:注册钉钉开发者账号并创建应用,获取 AppKey 和 AppSecret。使用 AppKey 和 AppSecret 获取 AccessToken。调用钉钉 API 获取部门列表和部门下人员列表。C# 语言可以方便地与钉钉开放平台 API 进行交互,实现企业应用与钉钉的集成。
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密