程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#如何在釘釘開發平台中創建部門,

C#如何在釘釘開發平台中創建部門,

編輯: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 手機驗證

 在手機上用釘釘客戶端查看是否創建部門成功,如下圖所示:

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved