C#如何在钉钉开发平台
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#如何在钉钉开发平台的更多相关文章
- C#如何在钉钉开发平台中创建部门
钉钉是阿里巴巴专为中小企业和团队打造的沟通.协同的多端平台,钉钉开放平台旨在为企业提供更为丰富的办公协同解决方案.通过钉钉开放平台,企业或第三方合作伙伴可以帮助企业快速.低成本的实现高质量的移动微应用 ...
- 钉钉、阿里云和PaaS平台的整合开发
钉钉在企业移动办公领域有着很高的占有率,但是可能大家都会觉得,他在企业定制化,数据分析等领域有着很大的短板. 而我们的kintone作为PaaS平台,可以补足这个短板.很多开发者想知道如何利用钉钉还有 ...
- .Net语言 APP开发平台——Smobiler学习日志:用MenuView控件仿钉钉APP的首页菜单
最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的”Smobil ...
- 钉钉企业应用C#开发笔记之一(免登)
关于钉钉 钉钉是阿里推出的企业移动OA平台,本身提供了丰富的通用应用,同时其强大的后台API接入能力让企业接入自主开发的应用成为可能,可以让开发者实现几乎任何需要的功能. 近期因为工作需要研究了一下钉 ...
- Java钉钉开发_01_开发前的准备
源码已上传GitHub:传送门 一.准备事项 1.1 一个能在公网上访问的项目: 参见:Java微信开发_02_本地服务器映射外网 1.2 一个钉钉账号 去注册 1.3 创建一个应用 登录钉钉后台 ...
- 钉钉开发获取APPKEY, APPSECRET, CorpId和SSOSecret
首先用自己的钉钉账号注册一个企业: https://oa.dingtalk.com/index.htm 一.获取应用APPKEY及APPSECRET方法: 1.登录钉钉开放平台创建应用: https: ...
- Asp.Net Core&钉钉开发系列
阿里钉钉在商业领域的规模越来越大,基于钉钉办公的企业越来越多,将一个企业内现有用到的工具(如钉钉)能够更融入到他们的工作中,提高工作效率,那便需要开发者不断的学习.应用了,同时,个人也有一个预感,未来 ...
- 基于C#的钉钉SDK开发(1)--对官方SDK的重构优化
在前段时间,接触一个很喜欢钉钉并且已在内部场景广泛使用钉钉进行工厂内部管理的客户,如钉钉考勤.日常审批.钉钉投影.钉钉门禁等等方面,才体会到原来钉钉已经已经在企业上可以用的很广泛的,因此回过头来学习研 ...
- 钉钉开发入门,微应用识别用户身份,获取用户免登授权码code,获取用户userid,获取用户详细信息
最近有个需求,在钉钉内,点击微应用,获取用户身份,根据获取到的用户身份去企业内部的用户中心做校验,校验通过,相关子系统直接登陆; 就是在获取这个用户身份的时候,网上的资料七零八落的,找的人烦躁的很,所 ...
随机推荐
- ubuntu 安装maven提示出错 The program 'mvn' can be found in the following packages
问题: I am trying to install apache maven 3 in Ubuntu 12.04 lts. What I did was open the terminal then ...
- Android触控屏幕Gesture(GestureDetector和SimpleOnGestureListener的使用教程)
1.当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing等等,我们知道View类有个View.OnTouchListener内部接口,通过重写他的onTouch(Vie ...
- 节点地址的函数list_entry()原理详解
本节中,我们继续讲解,在linux2.4内核下,如果通过一些列函数从路径名找到目标节点. 3.3.1)接下来查看chached_lookup()的代码(namei.c) [path_walk()> ...
- 采用管道处理HTTP请求
采用管道处理HTTP请求 之所以称ASP.NET Core是一个Web开发平台,源于它具有一个极具扩展性的请求处理管道,我们可以通过这个管道的定制来满足各种场景下的HTTP处理需求.ASP. NET ...
- 基于visual Studio2013解决面试题之0206hash表实现
题目
- uva 705
题意,给你迷宫算出其中个封闭空间的个数,以及求出所有封闭的空间的最大步长,但是给你的迷宫式“/”,“\”来标记的所以需要将每个格子分开来3*3的格子来算, 一开始按照2*2来算,2*2有临界情况不好算 ...
- iOS两个强制旋转屏幕的方法
第一个: // 状态栏动画持续时间 CGFloat duration = [UIApplication sharedApplication].statusBarOrientationAnimation ...
- Passenger/Nginx/Debian快速部署Rails
安装所需的linux包 sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl gi ...
- [置顶] JSP分页,使用Hibernate+mysql
此代码为博主参考巴巴运动网源码所得,大部分一样,略有修改,在这里分享给大家,也方便自己以后写代码直接copy,看网上很多分页代码JSP里是用JAVA代码,博主原来也是这样,看到源码了解了JSTL,建议 ...
- spring mvc 接受多对象的处置
spring mvc 接受多对象的处理 spring mvc感觉非常好用,尤其是对接收对象參数的自己主动绑定非常简便,但对于同一时候传多个对象时有些困扰. 同一时候项目并没有直接使用spring的fo ...