钉钉是阿里巴巴专为中小企业和团队打造的沟通、协同的多端平台,钉钉开放平台旨在为企业提供更为丰富的办公协同解决方案。通过钉钉开放平台,企业或第三方合作伙伴可以帮助企业快速、低成本的实现高质量的移动微应用,实现生产、管理、协作、运营的移动化。官网的列子往往都是java,php和nodejs的,下面我用c#来实现一个简单的列子,来说明如何与钉钉进行交互:

  1 创建一个网站:

  

其中官网有如何进行账号注册等开发的准备工作,这里不阐述。假设你已经成功申请了企业账号,然后获取了CorpId和CorpSecret。这里我创建一个DDConfig类来保存这两个值.

2 编写DDHelper类

DDHelper类主要为了与钉钉API进行交互,实现Get和Post请求处理,代码如下:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Web;
  5 using System.IO;
  6 using HttpRequest;
  7 namespace myDDDev
  8 {
  9     public static class DDHelper
 10     {
 11         public static string GetAccessToken(HttpRequest.HttpHelper.HttpResult result)
 12         {
 13
 14             if (result!=null)
 15             {
 16                 StreamReader myStreamReader = new StreamReader(result.Result, System.Text.Encoding.GetEncoding("utf-8"));
 17                 string retString = myStreamReader.ReadToEnd();
 18
 19                 M_AccessToken oat = Newtonsoft.Json.JsonConvert.DeserializeObject< M_AccessToken>(retString);
 20
 21                 if (oat!=null)
 22                 {
 23                    if(oat.errcode==0)
 24                     {
 25                         return oat.access_token;
 26                     }
 27                 }
 28             }
 29             return "";
 30         }
 31         public static string GetAccessToken(string url)
 32         {
 33
 34             if (url != "")
 35             {
 36                 try
 37                 {
 38                     HttpRequest.HttpHelper.HttpResult result = HttpRequest.HttpHelper.Get(url);
 39                     M_AccessToken oat = Newtonsoft.Json.JsonConvert.DeserializeObject<M_AccessToken>(result.ToStringResult());
 40
 41                     if (oat != null)
 42                     {
 43                         if (oat.errcode == 0)
 44                         {
 45                             return oat.access_token;
 46                         }
 47                     }
 48                 }
 49                 catch(Exception ex)
 50                 {
 51                     throw;
 52                 }
 53             }
 54             return "";
 55         }
 56
 57         public static string CreateDept(string url,string param)
 58         {
 59
 60             if (url != "")
 61             {
 62                 try
 63                 {
 64                     HttpRequest.HttpHelper.HttpResult result = HttpRequest.HttpHelper.Post(url, param, "application/json");
 65                     DDResult oat = Newtonsoft.Json.JsonConvert.DeserializeObject<DDResult>(result.ToStringResult());
 66
 67                     if (oat != null)
 68                     {
 69                         if (oat.errcode == 0)
 70                         {
 71                             return "0";
 72                         }
 73                     }
 74                 }
 75                 catch (Exception ex)
 76                 {
 77                     throw;
 78                 }
 79             }
 80             return "1";
 81         }
 82
 83
 84
 85     }
 86     //{"access_token":"","errcode":0,"errmsg":"ok"}
 87     public class M_AccessToken
 88     {
 89         public string access_token { get; set; }
 90         public int errcode { get; set; }
 91
 92         public string errmsg { get; set; }
 93
 94
 95     }
 96     public class DDResult
 97     {
 98
 99         public int errcode { get; set; }
100         public string errmsg { get; set; }
101
102
103     }
104 }

3 创建部门处理

在index.aspx.cs中编写创建部门的逻辑,代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.UI;
 6 using System.Web.UI.WebControls;
 7 using System.IO;
 8 using HttpRequest;
 9 namespace myDDDev
10 {
11     public partial class index : System.Web.UI.Page
12     {
13         protected void Page_Load(object sender, EventArgs e)
14         {
15             try
16             {
17                 //http://ddtalk.github.io/dingTalkDoc/
18                 //获取AccessToken
19                 //开发者在调用开放平台接口前需要通过CorpID和CorpSecret获取AccessToken。
20                 //获取AccessToken的方法是向 https://oapi.dingtalk.com/gettoken?corpid=id&corpsecret=secrect GET请求。
21                 string getUrl = string.Format("https://oapi.dingtalk.com/gettoken?corpid={0}&corpsecret={1}", DDConfig.__CorpID, DDConfig.__CorpSecret);
22
23                 //access_token 会失效,需要定期获取;
24                 string access_token = DDHelper.GetAccessToken(getUrl);
25
26                 /*
27                 开发者获取AccessToken后便可以调用开放平台其他接口。
28                 以获取部门列表接口为例,获取部门列表接口为:
29                 oapi.dingtalk.com/department/list
30                 在请求该接口时,需要将获取的AccessToken作为请求参数拼装到URL中:
31                 https://oapi.dingtalk.com/department/list?access_token=ACCESS_TOKEN
32                 */
33                 //添加部门测试
34                 string postUrl = string.Format("https://oapi.dingtalk.com/department/create?access_token={0}", access_token);
35                 string param = "{\"access_token\":\"" + access_token + "\",\"name\":\"后勤部\",\"parentid\":\"1\",\"order\":\"3\",\"createDeptGroup\":\"false\"}";
36                 //HttpRequest.HttpHelper.HttpResult result = HttpRequest.HttpHelper.Post(postUrl, param, "application/json");
37                 //Response.Write(result.ToStringResult());
38                 //code=0 表示创建从成功
39                 string code = DDHelper.CreateDept(postUrl, param);
40                 if(code=="0")
41                 {
42                     Response.Write("创建成功");
43                 }
44             }
45              catch(Exception ex)
46             {
47                 Response.Write(ex.Message);
48             }
49         }
50     }
51 }
52  

4 手机验证

在手机上用钉钉客户端查看是否创建部门成功,如下图所示:

转载于:https://www.cnblogs.com/isaboy/p/c_ddtalk_api_open.html

C#如何在钉钉开发平台中创建部门相关推荐

  1. 阿里云---云开发平台的创建与部署

    阿里云-云开发平台的创建与部署及域名绑定 步骤 登陆 阿里云 创建 云开发平台应用 选择开发语言和创建方式,这里我选择建立一个Python的Demo 填写应用的详细信息.如图所示,计算服务选择SAE. ...

  2. 阿里云云开发平台的创建与部署

    阿里云云开发平台的创建与部署 阿里云云开发平台的创建与部署 首先我们要登录阿里云 然后创建 云开发平台应用 接下来我们选择开发语言和创建方式 接下来开通依赖的服务 之后我们部署日常环境的应用配置 接下 ...

  3. 阿里云--云开发平台的创建与部署

    阿里云-云开发平台的创建与部署及域名绑定 步骤 1.登录阿里云 2.创建新应用 3.选择开发语言和创建方式,这里我选择建立一个JAVA的Demo 4.填写应用的详细信息.如图所示,计算服务选择SAE. ...

  4. 为什么调用webservice接口只有 string arg0_快速开发平台中关于支持第三方接口开发的指导

    说明: 本示例中的代码和截图可能和您现在手中的版本不同,但操作思路一样. 以下例子要自己写代码,是写死的那种代码类型,请根据自己实际业务编写代码只是作为参考,不能直接调用 背景介绍 表单或者列表部分数 ...

  5. DingTalk「开发者说」 5分钟开发钉钉应用

    一.钉钉应用开发平台是什么? 钉钉应用开发平台是开发在钉钉容器内运营的应用.钉钉应用是业务数字化的高价值载体,云钉一体能力底座全面普惠,释放数字化生产力量,加速组织业务数字化转型,打造企业数字化统一办 ...

  6. 【浙政钉】微信-专有钉钉小程序-开发踩坑实记

    文章目录 ⭐[浙政钉]微信-专有钉钉小程序-开发踩坑实记 ⭐ 创建项目 ⭐ 转化方案 ⭐ 政务钉钉调试 ⭐ 上传发布 ⭐[浙政钉]微信-专有钉钉小程序-开发踩坑实记 最近有个需求,要将微信小程序转为浙 ...

  7. 推荐一款快速开发平台,web中最好的快速开发平台

    力软快速开发平台是力软自主开发的基于SOA面向服务的应用系统开发平台,可以方便快捷的搭建企业.医院.工厂.学校等行业的企业级运营管理平台.平台采用.net.技术架构,webapi服务搭建. 力软快速开 ...

  8. 最近在推广一款快速开发平台,C/S架构中最好的快速开发平台

    度量快速开发平台,是度量科技自主开发的基于SOA面向服务的应用系统开发平台,可以方便快捷的搭建企业.医院.工厂.学校等行业的企业级运营管理平台.平台采用.net.技术构架,webservice服务搭建 ...

  9. 阿里云西安ACE同城会 | 钉钉生态应用促进企业信息化实战沙龙

    简介:未来的企业应用是什么样子,如何让企业员工0成本低代码搭建企业自己的系统,现在由企业实现贴合自身业务发展的系统,变得如此简单.我们请来阿里钉钉事业部的资深专家为我们讲解融合云原生.钉原生与生态aP ...

最新文章

  1. python 列表生成器 获取文件列表
  2. 运维工程师仪表免费换新活动开始了…任何品牌万用表、钳表、测温仪都可以换福禄克万用表、钳表、测温仪...
  3. 13.4.虚拟化工具--jmap详解
  4. 分享:游戏新手引导程序框架设计3要点
  5. 图形工具包 linux,GTK 4.0图形工具包正式发布:时隔四年的重大版本!
  6. 腾讯2013实习生笔试题+答案1-5aadaa 6-10adbcc 11-15 acacc16-20 bbddc
  7. ubuntu支持中文设置
  8. 里程碑式突破!我国量子计算原型机“九章”问世
  9. Python使用装饰器捕获异常
  10. 设计模式学习笔记(5) - 策略模式
  11. PASCAL VOC数据集简介
  12. NSIS 封装软件工具封装的软件,安装后快捷方式没有图标显示问题
  13. 遗传算法--适应度尺度变换
  14. 大学计算机课挂科补考,【挂科的同学请注意!】关于本学期补考、缓考的通知(转)...
  15. ad18常用快捷键可以修改吗_AD18的常用操作及快捷键
  16. python第七天作业
  17. openerp环境的搭建
  18. apicloud总结
  19. 【JY|理念】结构概念设计之(设计理念进展)
  20. 百度BD09加密经纬度转国测局GCJ02经纬度

热门文章

  1. CTFshow 文件包含 web79
  2. 【Ex_BSGSBSGS算法模板】poj2417 poj3243
  3. Python基础07 函数
  4. C++ Vector 使用总结
  5. python3 替换字符串中指定位置字符
  6. JavaScript的案例(数据校验,js轮播图,页面定时弹窗)
  7. knockout的使用
  8. Caffe实战二(手写体识别例程:CPU、GPU、cuDNN速度对比)
  9. 【ECSHOP】格式化商品价格
  10. iOS开发之详解正则表达式