欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#如何實現調取釘釘考勤接口的功能

 更新時間:2022年08月11日 14:35:32   作者:努力嘗試!  
這篇文章主要介紹了C#如何實現調取釘釘考勤接口的功能,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

調取釘釘考勤接口的功能

公司需要做一個釘釘考勤的頁面,讓我去寫這個功能。結果卻比我想象的要麻煩一些!具體是怎么個麻煩呢

下面直入正題

首先我們找到獲取釘釘考勤結果的接口。結果發(fā)現請求參數里有一個userIdList列表,那么這時候第一個問題就來了,如何獲得這個userIdList呢?(注意這里的調用方式 是POST)

我們需要調用通訊錄管理下的用戶管理下的獲取部門用戶接口。來獲得用戶名字和用戶的userId。那么這個時候 發(fā)現還需要另一個參數 部門id。那么部門id又是什么呢?(注意這里的調用方式 是GET)

我們找到了這個接口(通訊錄管理下的部門管理下的獲取部門列表),然后把id設置為空,就可以得到所有的部門列表了,在部門列表里找到自己部門的id即可。(注意這里的調用方式 是GET)

這樣經過一波三折,總算調到了釘釘考勤的結果。注意,一次只能調取7天的哦!

當然,獲取到結果之后,還需要進行對數據的分析處理等工作,經過了幾天的努力我才完成。

PS:token的獲得方法。

public static string GetAccess_Tocken()
       {
           var url = @"https://oapi.dingtalk.com/gettoken?appkey="+AppKey+"&appsecret="+AppSecret;
           var result = Json.ToJObject(HttpMethods.HttpGet(url));
           var tocken = result["access_token"]?.ToString();
           return tocken;
       }

小技巧:

我們可以通過在線調試快速獲得部門id,快速驗證接口能否使用。不過需要管理員才能使用在線調試這個功能。

調用釘釘接口發(fā)送圖片群消息

前段時間我被一個需求困擾,如何調用釘釘接口發(fā)送圖片消息?文字消息用string類型的參數很容易實現了,可是好像要發(fā)圖片就滅有那么簡單了,好在后來經過我的摸索,解決了問題。

步驟如下

要想發(fā)群消息,首先要建個釘釘群,建群的話首先要獲取全局ID,要用到釘釘上的企業(yè)ID

? //全局群id
? ? ? public static ?string getchatid = "";//群會話id(系統停止之后消失)
? ? ? ? //用于判斷是否換班成功(是否成功創(chuàng)建新群)
? ? ? public static ?Boolean flagid =false;?
? ? ? ? /// <summary>
? ? ? ? /// 獲取接口全局ID
? ? ? ? /// </summary>
? ? ? ? /// <returns></returns>
? ? ? ? private string accessToken() {
? ? ? ? ? ? string corpid = "**************";
? ? ? ? ? ? string CorpSecret = "*******************************";
? ? ? ? ? ? string AccessToke = "";
? ? ? ? ? ? string url = string.Format("https://oapi.dingtalk.com/gettoken?appkey={0}&appsecret={1}", corpid, CorpSecret);
? ? ? ? ? ? JToken json = JToken.Parse(HttpUtiy.HttpGet(url));
? ? ? ? ? ? AccessToke = json["access_token"].ToString();
? ? ? ? ? ? return AccessToke;
? ? ? ? } ? ? 

我們這次實現的功能是,通過群成員的手機號作為參數建群,所以要根據手機號獲取用戶的UserID

//根據手機號獲取用戶UserID ?
? ? ? ? private string UserID(string phone) {
? ? ? ? ? ? // 通過手機號獲取 userId?
? ? ? ? ? ? string url = string.Format("https://oapi.dingtalk.com/user/get_by_mobile?access_token={0}&mobile={1}",accessToken(), phone);
? ? ? ? ? ? string userid ="找不到用戶id";//用戶企業(yè)內部id
? ? ? ? ? ? JToken json = JToken.Parse(HttpUtiy.HttpGet(url));
? ? ? ? ? ? if (json["errmsg"].ToString() != "找不到該用戶") {
? ? ? ? ? ? ? ? ? userid = json["userid"].ToString();
? ? ? ? ? ? }
? ? ? ? ? ? return userid;
? ? ? ? }

下面可以建群了,以下代碼是建群方法

?/// <summary>
? ? ? ? /// 創(chuàng)建群會話
? ? ? ? /// </summary>
? ? ? ? /// <param name="phone1">值班人員1手機號</param>
? ? ? ? /// <param name="phone2">值班人員1手機號</param>
? ? ? ? /// <param name="Chatidname">群名稱</param>
? ? ? ? public void Creatchatid(string phone1, string phone2,string Chatidname
? ? ? ? ? ? ) {
? ? ? ? ? ?
? ? ? ? ? ? ? ? #region 獲取用戶企業(yè)內部id
? ? ? ? ? ? ? ? //獲取值班人員企業(yè)userid
? ? ? ? ? ? ? ? string userid = UserID(phone1);//獲取用戶userId(第一個人作為群主)
? ? ? ? ? ? ? ? string userid2 = UserID(phone2);
? ? ? ? ? ? ? ? //用戶id添加到,成員數組。
? ? ? ? ? ? ? ? string[] Chatiduseridlist = new string[] { userid, userid2 };//添加到群成員列表里
? ? ? ? ? ? ? ? #endregion
? ? ? ? ? ? ? ? //判斷是否正確獲得用戶企業(yè)id
? ? ? ? ? ? ? ? if (userid.Trim() == "找不到用戶id" || userid2.Trim() == "找不到用戶id")
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? flagid = false;//獲取用戶id失敗
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else {
? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? #region 創(chuàng)建群會話
? ? ? ? ? ? ? ? ? ? string MessageUrl = string.Format("https://oapi.dingtalk.com/chat/create?access_token={0}", accessToken());
? ? ? ? ? ? ? ? ? ? var json_req = new
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? name = Chatidname, // 群名稱
? ? ? ? ? ? ? ? ? ? ? ? owner = userid, ?// 群主id
? ? ? ? ? ? ? ? ? ? ? ? useridlist = Chatiduseridlist
? ? ? ? ? ? ? ? ? ? };
? ? ? ? ? ? ? ? ? ? string jsonRequest = JsonConvert.SerializeObject(json_req);//將對象轉換為字符串類型
? ? ? ? ? ? ? ? ? ? JToken json = JToken.Parse(HttpUtiy.HttpPost(MessageUrl, jsonRequest));//返回值轉換為JToken格式 ? ? ? ? ? ? ? ? ? ? ? ? ?//賦值給成員變量,避免多次創(chuàng)建群。
? ? ? ? ? ? ? ? ? ? getchatid = json["chatid"].ToString();
? ? ? ? ? ? ? ? ? ? #endregion
? ? ? ? ? ? ? ? ? ? //改變flagid標簽狀態(tài)
? ? ? ? ? ? ? ? ? ? flagid = true;
? ? ? ? ? ? ? ? } ? ? ? ? ? ? ??
? ? ? ? }

建好了群之后就可以發(fā)消息了,字符串消息很簡單,像開頭說的那樣,代碼如下

? ? ? ? /// <summary>
? ? ? ? /// 發(fā)送群消息
? ? ? ? /// </summary>
? ? ? ? public void SendMsg() {
? ? ? ? ? ? //發(fā)送群消息
? ? ? ? ? ? string MessageUrl =string.Format("https://oapi.dingtalk.com/chat/send?access_token={0}",accessToken());
? ? ? ? ? ? var json_req = new
? ? ? ? ? ? {
? ? ? ? ? ? ? ? chatid = getchatid,//獲取群會話id
? ? ? ? ? ? ? ? ? ?msg=new {?
? ? ? ? ? ? ? ? ? ? ? ?msgtype="text",
? ? ? ? ? ? ? ? ? ? ? ?text = new {
? ? ? ? ? ? ? ? ? ? ? ? ? ?content = "有陌生人闖入,請及時查看!"
? ? ? ? ? ? ? ? ? ? ? ?} ? ??
? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? };
? ? ? ? ? ? string jsonRequest = JsonConvert.SerializeObject(json_req);//將json轉位字符串
? ? ? ? ? ? HttpUtiy.HttpPost(MessageUrl, jsonRequest);
? ? ? ? }

仿照同樣的格式,寫出了圖片消息的方法

?//發(fā)送圖片消息的方法
? ? ? ? public void SendMsgPic()
? ? ? ? {
? ? ? ? ? ? //發(fā)送群消息
? ? ? ? ? ? string MessageUrl = string.Format("https://oapi.dingtalk.com/chat/send?access_token={0}", accessToken());
? ? ? ? ? ? var json_req = new
? ? ? ? ? ? {
? ? ? ? ? ? ? ? chatid = getchatid,//獲取群會話id
? ? ? ? ? ? ? ? msg = new
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? msgtype = "image",
? ? ? ? ? ? ? ? ? ? image = new
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? media_id = "圖片的媒體ID"
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? };
? ? ? ? ? ? string jsonRequest = JsonConvert.SerializeObject(json_req);//將json轉位字符串
? ? ? ? ? ? HttpUtiy.HttpPost(MessageUrl, jsonRequest);
? ? ? ? }

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關文章

  • c# Process.Start()找不到系統文件的解決方法

    c# Process.Start()找不到系統文件的解決方法

    vs1027在X64應用程序下執(zhí)行process.start()時,OK;但是在X86應用程序下執(zhí)行process.start(),報錯:找不到系統文件,本文就詳細的介紹一下解決方法,感興趣的可以了解一下
    2023-09-09
  • 淺析C# 結構體struct

    淺析C# 結構體struct

    這篇文章主要介紹了C# 結構體struct 的相關資料,幫助大家更好的理解和學習c#,感興趣的朋友可以了解下
    2020-08-08
  • C#實現解析JSON的示例詳解

    C#實現解析JSON的示例詳解

    這篇文章主要為大家詳細介紹了使用C#實現解析JSON的相關知識,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以跟隨小編一起學習一下
    2024-03-03
  • C#使用Json.Net對JSON與對象的序列化與反序列化

    C#使用Json.Net對JSON與對象的序列化與反序列化

    這篇文章介紹了Json.Net對JSON與對象的序列化與反序列化,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#實現獲取枚舉中元素個數的方法

    C#實現獲取枚舉中元素個數的方法

    這篇文章主要介紹了C#實現獲取枚舉中元素個數的方法,是深入理解C#程序設計所需要掌握的基本技巧,需要的朋友可以參考下
    2014-08-08
  • C#中字段、屬性、只讀、構造函數賦值、反射賦值的問題

    C#中字段、屬性、只讀、構造函數賦值、反射賦值的問題

    這篇文章主要介紹了C#中字段、屬性、只讀、構造函數賦值、反射賦值的問題 ,非常不錯,具有一定的參考借鑒借鑒價值,需要的朋友可以參考下
    2018-08-08
  • C#類中屬性與成員變量的使用小結

    C#類中屬性與成員變量的使用小結

    本篇文章主要是對C#類中屬性與成員變量的使用進行了總結介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • C#零基礎學習理解委托

    C#零基礎學習理解委托

    C#零基礎學習理解委托,需要的朋友可以參考一下
    2013-02-02
  • C#操作windows系統進程的方法

    C#操作windows系統進程的方法

    這篇文章介紹了C#操作windows系統進程的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#正則表達式與HashTable詳解

    C#正則表達式與HashTable詳解

    這篇文章主要介紹了C#正則表達式與HashTable詳解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07

最新評論