U8二次开发-钉钉集成

钉钉开放平台作为企业沟通和协作的重要工具,其技术的每一次迭代都为企业带来了新的机遇和挑战。随着企业对于高效沟通和智能化管理的需求日益增长,钉钉平台的SDK更新显得尤为重要。把传统的U8与钉钉平台集成,可以有效的将业务功能和角色进行前移,打破应用系统二八原则,即80%的用户在使用20%的功能。

我们在开始介绍U8二次开发和钉钉集成实现技术前,先来了解一下基本概念,文末将提供对应的源代码示例包。

钉钉开放平台

钉钉开放平台 作为企业沟通和协作的重要工具,其技术的每一次迭代都为企业带来了新的机遇和挑战。随着企业对于高效沟通和智能化管理的需求日益增长,钉钉平台的SDK更新显得尤为重要。新的AlibabaCloud.SDK.Dingtalk包不仅提供了更加灵活的API接口,而且代码的可读性和维护性也得到了显著提升,这对于开发者而言无疑是一大利好。

钉钉平台越来越流行的同时,也正处在一个新旧SDK交替的阶段,网上的代码多数是老版本的基于TopSDK(早期的Tao bao开放平台SDK)来实现的,而官方文档上的示例,特别是C#语言的,都是基于新的AlibabaCloud.SDK.Dingtalk包来封装实现的,代码更加的灵活和文艺(可读)。在网上搜索参考了很多资料后,提供了一个新旧代码都兼容的WinForm示例启动包。

功能包括: 企业内部应用的Token生成,消息的发送(文本消息,卡片消息,互动消息等),组织列表获取,人员列表获取,基本信息获取,推送统一代办审批任务等。

部分截图:

输入图片说明

输入图片说明

输入图片说明

如何申请钉钉企业内部应用并获取相关参数(Appkey,Appsecret,AgentId)不在本文范围内,网上资料很多,最快实现企业内部应用集成当属H5微应用方式,完成免登后即可集成到钉钉工作台。

获取Token

新旧方式对比(多数api现在不需要CorpId了):
Client ID (原 AppKey 和 SuiteKey)
Client Secret (原 AppSecret 和 SuiteSecret)

//传统方式
static string GetAccessToken(string appKey, string appSecret)
{
         DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
         OapiGettokenRequest request = new OapiGettokenRequest();
         request.Appkey = appKey;
         request.Appsecret = appSecret;
         request.SetHttpMethod("GET");

         try
         {
             OapiGettokenResponse response = client.Execute(request);
             if (response.Errcode == 0)
             {
                 accessToken = response.AccessToken;
                 return response.AccessToken;
             }
             else
             {
                 return null;
             }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
        return ex.Message;
    }
}
//新版本方式
 static string GetAccessTokenV2(string appKey, string appSecret)
 {
     AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client client = CreateAuthClient();
     AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.GetAccessTokenRequest getAccessTokenRequest = new AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.GetAccessTokenRequest
     {
         AppKey = appKey,
         AppSecret = appSecret,
     };

     try
     {
        var resp = client.GetAccessToken(getAccessTokenRequest);

         return resp.Body.AccessToken;//7200s
     }
     catch (TeaException err)
     {
         if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
         {
             // err 中含有 code 和 message 属性,可帮助开发定位问题
             MessageBox.Show(err.Message);
         }
     }
  

相关推荐

  1. U8开发CO-基于Net8调用COM对象

    2024-04-02 11:42:04       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-02 11:42:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-02 11:42:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-02 11:42:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-02 11:42:04       20 阅读

热门阅读

  1. C 练习实例96 - 字符串中的子串

    2024-04-02 11:42:04       16 阅读
  2. 计算机断层扫描采集软件

    2024-04-02 11:42:04       15 阅读
  3. vector容器(二)

    2024-04-02 11:42:04       16 阅读
  4. QT(6.5) cmake构建C++编程,多线程

    2024-04-02 11:42:04       17 阅读
  5. C++ hex转uint,uint 互相转换,uint转byte

    2024-04-02 11:42:04       18 阅读
  6. sql注入详解

    2024-04-02 11:42:04       15 阅读
  7. Qt QML 坐标转换函数

    2024-04-02 11:42:04       15 阅读
  8. Python 约瑟夫环问题

    2024-04-02 11:42:04       12 阅读