概述
《钉钉开发系列(二)结构封装》对相应的结构进行了封装,这样在后续的调用中就会相当方便。这里举GET和POST各一个例子,其他的API可以参照钉钉的开发文档。
比如以GET方式获取部门列表
#region FetchDepartList
public static DepartResultSet FetchDepartList()
{
string apiurl = FormatApiUrlWithToken(Urls.department_list);
var result = Analyze.Get<DepartResultSet >(apiurl);
return result;
}
#endregion
public static String FormatApiUrlWithToken(String url, bool forceUpdate = false)
{
UpdateAccessToken(forceUpdate);
string apiurl = $"{url}?{Keys.access_token}={AccessToken.Value}";
return apiurl;
}
其中UpdateAccessToken是更新票据,请参看钉钉系列的文章《
钉钉开发系列(一)access_token的获取》。
namespace DDSDK
{
public class DepartResultSet :ResultPackage
{
public List<Depart> department { get; set; }
}
}
<pre name="code" class="csharp">namespace DDSDK
{
/// <summary>
/// 部门
/// </summary>
public class Depart
{
/// <summary>
/// 部门id
/// </summary>
public string id { get; set; }
/// <summary>
/// 部门名称
/// </summary>
public string name { get; set; }
/// <summary>
/// 父部门id,根部门为1
/// </summary>
public string parentid { get; set; }
/// <summary>
/// 是否同步创建一个关联此部门的企业群, true表示是, false表示不是
/// </summary>
public bool createDeptGroup { get; set; }
/// <summary>
/// 当群已经创建后,是否有新人加入部门会自动加入该群, true表示是, false表示不是
/// </summary>
public bool autoAddUser { get; set; }
}
}
以POST请求来发送信息
/// <summary>
/// 发送消息
/// </summary>
/// <param name="toUser">目标用户</param>
/// <param name="toParty">目标部门.当toParty和toUser同时指定时,以toParty来发送。</param>
/// <param name="content">消息文本</param>
/// <returns></returns>
private static SendMessageResult SendTextMsg(string toUser, string toParty, string content)
{
var txtmsg = new
{
touser = toUser,
toparty = toParty,
msgtype = MsgType.text.ToString(),
agentid = ConfigHelper.FetchAgentID(),
text = new
{
content = content
}
};
string apiurl = FormatApiUrlWithToken(Urls.message_send);
string json = JsonConvert.SerializeObject(txtmsg);
var result = Analyze.Post<SendMessageResult>(apiurl, json);
return result;
}
namespace DDSDK
{
public class SendMessageResult : ResultPackage
{
public string receiver { get; set; }
}
}
如果需要将一些信息额外的加入到返回的结果中,可以在相关的类里面定义相应的属性,然后在返回结果为OK后面赋值信息,比如
var result = Analyze.Post<SendMessageResult>(apiurl, json);
if (result.IsOK())
{
result.SendTime = DateTime.Now;
}
至此,服务端的API调用已经可以使用了,其他的API可以参照开发文档。对于客户端的API调用还需要进一步获取JS的票据,并且需要做缓存,这将在后续中说到。
转载请注明出处。
转载于:https://www.cnblogs.com/sparkleDai/p/7604916.html
最后
以上就是积极芝麻为你收集整理的钉钉开发系列(三)API的调用的全部内容,希望文章能够帮你解决钉钉开发系列(三)API的调用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复