钉钉开发系列(三)API的调用

钉钉开发系列(二)结构封装》对相应的结构进行了封装,这样在后续的调用中就会相当方便。这里举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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VFP(Visual FoxPro)是一种基于对象的编程语言,常用于Windows平台上的数据库应用程序开发。要调用钉钉API接口,可以按照以下步骤进行: 1. 首先,需要在钉钉开放平台上创建一个企业应用,获取到应用的CorpID和CorpSecret。这些凭证将用于在API调用中进行身份验证。 2. 在VFP中,可以使用URLMON库来发送HTTP请求。使用URLMON库的URLDownloadToFile函数可以下载API返回的数据到本地文件。同时,还可以使用API相关的地址和参数构建需要调用的URL。 3. 在VFP中,可以使用ADO(ActiveX Data Objects)来处理HTTP请求的返回值。通过创建一个ADODB.Stream对象,可以读取下载的API返回的数据,并进行进一步的操作和处理。 4. 在进行API调用时,需要对请求进行签名验证,以确保请求的合法性和安全性。可以使用HMAC-SHA256算法对请求参数进行签名,将签名结果添加到URL中的请求参数中,以验证请求的有效性。 5. 在VFP中,可以使用API的请求参数的JSON格式来进行请求。可以使用VFP的JSON类库或者其他JSON解析器来处理JSON格式的请求参数和返回值。 在调用钉钉API接口时,需要仔细阅读钉钉开放平台的API文档,了解每个接口的具体使用方法和请求参数,以确保API调用的成功和准确性。完成以上步骤后,即可在VFP中调用钉钉API接口,实现与钉钉数据交互和业务操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值