釘釘開發系列 五 生成簽名包

2021-07-12 00:01:26 字數 2110 閱讀 5516

釘釘的開發介面中,目前沒有在服務端直接獲取chatid的介面,但提供了客戶端獲取chatid的介面。所以有需要獲取該介面的,我們可以暫時使用客戶端的方式獲取。為了能夠使用jsapi,我們還需要利用jsticket來得到簽名包,具體**如下。

#region fetchsignpackage function 

/// /// 獲取簽名包

///

///

///

public static signpackage fetchsignpackage(string url, jsticket jsticket)

// 這裡引數的順序要按照 key 值 ascii 碼公升序排序

string rawstring = $"=" + jsticket.ticket

+ $"&=" + noncestr

+ $"&=" + timestamp

+ $"&=" + url;

string signature = signpackagehelper.sha1hex(rawstring).tolower();

var signpackage = new signpackage()

;return signpackage;

}/// /// 獲取簽名包

///

///

///

public static signpackage fetchsignpackage(string url)

#endregion

/// /// 簽名包

///

public class signpackage

public string corpid

public string timestamp

public string noncestr

public string signature

public string url

public string rawstring

public string jsticket

}

using system;

using system.collections.generic;

using system.linq;

using system.security.cryptography;

using system.text;

namespace ddsdk

return sh1;

}#endregion

#region createnoncestr

/// /// 建立隨機字串

///

///

public static string createnoncestr()

return str;

}#endregion

#region converttounixtimestamp

/// /// 將datetime時間格式轉換為unix時間戳格式

///

/// 時間

/// double

public static int converttounixtimestamp(datetime time)

#endregion}}

在介面上我們可以使用json的方式來獲取資料,為了方便後續的使用,這裡定義了乙個global.js。

/// var global = );

dd.ready(function ()

});dd.error(function (err)

else

});}

catch (e)

});}

}

其中"/api/auth/getsignpackage"是webapi的方式,這將在後續中說到。這裡需要引用zepto.min.js。

下面呼叫的結果

釘釘開發系列 四 獲取JS票據

釘釘的客戶端開發和服務端有乙個重要的區別,服務端只需要得到access token就可以了,而客戶端還需要進一步換取jsticket。所以我們要進行客戶端的開發,第一步就是得到jsticket。又由於jsticket有7200秒的限制,而且每請求一次前面的就會失效,為此我們需要做乙個快取層來儲存。首...

釘釘開發系列篇之開發第乙個Django Web應用

第一部分 在windows上安裝django 在使用django開發應用之前,你需要安裝它。在這裡,採取簡單的最小化的安裝就可以完成基本的建站任務需求。django安裝嚮導 第一步,安裝python。django是乙個基於python的網路框架,因此安裝django需要首先安裝python。在本系列...

Python Pytest框架(五)生成測試報告

忘了的話,來個pytest h findstr html,還可以輸出為文字 pytest h pytest help.txt 1 格式 pytest sv html 測試報告的路徑 要執行的檔案 例如 pytest sv html report.html xfail test.py 會自動在當前目錄...