zoukankan      html  css  js  c++  java
  • 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/ 
  • 相关阅读:
    js 学习的地址;
    HTML onmousedown 事件属性 关于鼠标按键的问题;
    contextmenu="supermenu" 属性的应用 右键菜单打开和保存功能
    gulp自动化ES6转ES5
    angularjs获取元素以及angular.element()用法
    gulp学习总结
    Git 代码管理常用命令
    SpringMVC基于代码的配置方式(零配置,无web.xml)
    [Android Studio 权威教程]AS 中配置强大的版本号管理系统(Git、SVN、等)
    SVM支持向量机
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5397079.html
Copyright © 2011-2022 走看看