钉钉的开发接口中,目前没有在服务端直接获取chatid的接口,但提供了客户端获取chatid的接口。所以有需要获取该接口的,我们可以暂时使用客户端的方式获取。为了能够使用jsapi,我们还需要利用jsticket来得到签名包,具体代码如下。
#region FetchSignPackage Function
/// <summary>
/// 获取签名包
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static SignPackage FetchSignPackage(String url, JSTicket jsticket)
{
int unixTimestamp = SignPackageHelper.ConvertToUnixTimeStamp(DateTime.Now);
string timestamp = Convert.ToString(unixTimestamp);
string nonceStr = SignPackageHelper.CreateNonceStr();
if (jsticket == null)
{
return null;
}
// 这里参数的顺序要按照 key 值 ASCII 码升序排序
string rawstring = $"{Keys.jsapi_ticket}=" + jsticket.ticket
+ $"&{Keys.noncestr}=" + nonceStr
+ $"&{Keys.timestamp}=" + timestamp
+ $"&{Keys.url}=" + url;
string signature = SignPackageHelper.Sha1Hex(rawstring).ToLower();
var signPackage = new SignPackage()
{
agentId = ConfigHelper.FetchAgentID(),//取配置文件中的agentId,可依据实际配置而作调整
corpId = ConfigHelper.FetchCor