C#如何在钉钉开发平台中创建部门

 

  钉钉是阿里巴巴专为中小企业和团队打造的沟通、协同的多端平台,钉钉开放平台旨在为企业提供更为丰富的办公协同解决方案。通过钉钉开放平台,企业或第三方合作伙伴可以帮助企业快速、低成本的实现高质量的移动微应用,实现生产、管理、协作、运营的移动化。官网的列子往往都是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 手机验证

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

水平有限,望各位园友不吝赐教!如果觉得不错,请点击推荐和关注! 
出处:http://www.cnblogs.com/isaboy/ 

C#如何在钉钉开发平台的更多相关文章

  1. C#如何在钉钉开发平台中创建部门

    钉钉是阿里巴巴专为中小企业和团队打造的沟通.协同的多端平台,钉钉开放平台旨在为企业提供更为丰富的办公协同解决方案.通过钉钉开放平台,企业或第三方合作伙伴可以帮助企业快速.低成本的实现高质量的移动微应用 ...

  2. 钉钉、阿里云和PaaS平台的整合开发

    钉钉在企业移动办公领域有着很高的占有率,但是可能大家都会觉得,他在企业定制化,数据分析等领域有着很大的短板. 而我们的kintone作为PaaS平台,可以补足这个短板.很多开发者想知道如何利用钉钉还有 ...

  3. .Net语言 APP开发平台——Smobiler学习日志:用MenuView控件仿钉钉APP的首页菜单

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的”Smobil ...

  4. 钉钉企业应用C#开发笔记之一(免登)

    关于钉钉 钉钉是阿里推出的企业移动OA平台,本身提供了丰富的通用应用,同时其强大的后台API接入能力让企业接入自主开发的应用成为可能,可以让开发者实现几乎任何需要的功能. 近期因为工作需要研究了一下钉 ...

  5. Java钉钉开发_01_开发前的准备

    源码已上传GitHub:传送门 一.准备事项 1.1  一个能在公网上访问的项目: 参见:Java微信开发_02_本地服务器映射外网 1.2  一个钉钉账号 去注册 1.3 创建一个应用 登录钉钉后台 ...

  6. 钉钉开发获取APPKEY, APPSECRET, CorpId和SSOSecret

    首先用自己的钉钉账号注册一个企业: https://oa.dingtalk.com/index.htm 一.获取应用APPKEY及APPSECRET方法: 1.登录钉钉开放平台创建应用: https: ...

  7. Asp.Net Core&钉钉开发系列

    阿里钉钉在商业领域的规模越来越大,基于钉钉办公的企业越来越多,将一个企业内现有用到的工具(如钉钉)能够更融入到他们的工作中,提高工作效率,那便需要开发者不断的学习.应用了,同时,个人也有一个预感,未来 ...

  8. 基于C#的钉钉SDK开发(1)--对官方SDK的重构优化

    在前段时间,接触一个很喜欢钉钉并且已在内部场景广泛使用钉钉进行工厂内部管理的客户,如钉钉考勤.日常审批.钉钉投影.钉钉门禁等等方面,才体会到原来钉钉已经已经在企业上可以用的很广泛的,因此回过头来学习研 ...

  9. 钉钉开发入门,微应用识别用户身份,获取用户免登授权码code,获取用户userid,获取用户详细信息

    最近有个需求,在钉钉内,点击微应用,获取用户身份,根据获取到的用户身份去企业内部的用户中心做校验,校验通过,相关子系统直接登陆; 就是在获取这个用户身份的时候,网上的资料七零八落的,找的人烦躁的很,所 ...

随机推荐

  1. Qt 智能指针学习

    原地址:http://blog.csdn.net/dbzhang800/article/details/6403285 从内存泄露开始? 很简单的入门程序,应该比较熟悉吧 ^_^ #include & ...

  2. 用内存流 文件流 资源生成客户端(Delphi开源)

    正文:很多木马生成器就是用的内存流和文件流生成客户端的,废话不多说了,代码如下: unit Main; interface usesWindows, Messages, SysUtils, Varia ...

  3. Spring Uploading Files

    1,在servlet-dispatcher.xml中添加代码 <bean id="multipartResolver" class="org.springframe ...

  4. perl Exporter一些神奇写法

    use base qw(Exporter); @JSON::EXPORT = qw(from_json to_json jsonToObj objToJson encode_json decode_j ...

  5. 远光软件ASP.NET笔试题小汇总

    ASP.NET笔试题是ASP.NET程序员面试必须经历的,一般会叫你填两个表 1个是你的详细信息表 1个是面试题答卷 两个都要注意反正面是否都有内容不要遗漏,如果考你机试一般也有两种,就是程序连接数据 ...

  6. python实现刷博器(适用于新浪、搜狐)

    本文总结于智普教育: 做点小东西,有成就感,才会有动力学下去哈! 先上代码: 1: import webbrowser as web 2: import time 3: import os 4: co ...

  7. linux添加用户

    useradd  -M -s /sbin/nologin  -p `openssl   passwd   -1  -salt  '奥特曼与小怪兽'  123456` wang       还是这个吧

  8. ajax后台处理返回json值

    public ActionForward xsearch(ActionMapping mapping, ActionForm form, HttpServletRequest request, Htt ...

  9. [置顶] Java字节码文件剖析

    Java为什么能够支持跨平台,其实关键就是在于其*.class字节码文件,因为*.class字节码文件有一个统一标准的规范,里面是JVM运行的时需要的相关指令,各家的JVM必须能够解释编译执行标准字节 ...

  10. Android 3d云标签

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWluZ3l1ZV8xMTI4/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...