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);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/785014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

知识图谱:构建智能应用的大脑

引言 在当今数字化时代,数据的爆炸式增长使得人们面临着海量信息的处理和利用问题。在这样的背景下,知识图谱作为一种强大的知识表示和管理工具,正逐渐成为解决复杂问题和构建智能应用的关键技术之一。本文将深入探讨知识图谱的概念、重要性…

dailyneaty、希亦、鲸立婴儿洗衣机怎么样?三款卷王测评PK对决

曾经我还是一直选择手洗婴儿衣物,最终还是加入了买婴儿洗衣机的大军,一方面因为我懒,不想再继续手洗,另一方面是因为我看了科普才知道,当我们清洗衣物时,除了要洗掉衣物表面的污渍,更需要消除掉…

MATLAB——知识点备忘

最近在攻略ADC建模相关方面,由好多零碎的知识点,这里写个备忘录。 Matlab 判断一个数是否为整数 1. isinteger 函数 MATLAB中,可以使用 isinteger 函数来判断一个数是否为整数,例如:要判断x是否为整数可以采用以下代…

科研学习|论文解读——情感对感知偶然信息遭遇的影响研究(JASIST,2022)

原文题目 Investigating the impact of emotions on perceiving serendipitous information encountering 一、引言 serendipity一词最初是由霍勒斯沃波尔创造的,他将其定义为“通过意外和睿智发现你并不追求的事物”。信息研究中大多数现有的偶然性定义从几个角度看…

劳动力规划:对企业加速运营的未来展望

近年来,企业面临着过山车般的经济形势,面对消费水平的上涨、市场波动带来的担忧以及数字化的加速转型,许多企业虽然对未来仍秉持着谨慎乐观的态度,但也同时认为自身缺乏持续增长和成功转型的能力。为了让企业能够实现战略目标、应…

从fread 到 磁盘驱动

author: hjjdebug date: 2024年 03月 28日 星期四 16:49:14 CST description: 从fread 到 磁盘驱动 文章目录 1. linux 内核调用栈2. 读中断服务程序.3. 何时计算的柱面,磁头,扇区号? 现代磁盘还有柱面,磁头,扇区概念吗?4. 固定的dev,block, 是不是每次都能找到固定的buffer缓…

算法笔记之蓝桥杯pat系统备考(3)

算法笔记之蓝桥杯&pat系统备考(2) 多训练、多思考、多总结٩(๑•̀ω•́๑)۶ 八、深搜和广搜 8.1DFS dfs是一种枚举完所有完整路径以遍历所有情况的搜索方法,可以理解为每次都是一条路走到黑的犟种。 以老朋友斐波那契额数列为例&a…

numpy入门及和列表的比较

创建一个np的数组。 例子&#xff1a; import numpy as np# 创建一个列表a [1,2,3,4]# 用列表创建一个numpy数组b np.array(a)print(a的类型,type(a))print(a)print(b的类型,type(b))print(b) 结果&#xff1a; a的类型 <class list> [1, 2, 3, 4] b的类型 <cl…

Docker-compose管理工具的使用

华子目录 容器编排工具docker composecompose介绍compose使用的三个步骤docker-compose.yml文件案例compose具有管理应用程序整个生命周期的命令 docker compose安装安装条件在Linux系统上安装composedocker compose卸载 docker compose运用演示修改compose配置&#xff0c;添加…

【手册】——mq延迟队列

目录 一、背景介绍二、思路&方案三、过程1.项目为啥用延迟队列&#xff1f;2.项目为啥用三方延迟队列&#xff1f;3.项目中为啥用rabbitmq延迟队列&#xff1f;4.rabbitmq延迟队列的安装5.rabbitmq的延迟队列配置方式5.1.exchange配置5.2.queues配置5.3.exchange和queues的…

初识C++ · 入门(2)

目录 1 引用 1.1引用的概念 1.2 引用的特性 2 传值&#xff0c;传引用的效率 3 引用和指针的区别 4 内联函数 4.1 内联函数的定义 4. 2 内联函数的特性 5 关键字auto 5.1关于命名的思考 5.2 关于auto的发展 5.3 auto使用规则 6 范围for的使用 7 空指针 1 引用 …

web渗透测试漏洞复现:docker API未授权漏洞复现并getshell

web渗透测试漏洞复现 1. docker API未授权漏洞复现1.1 dokcer的概念1.2 dokcer API的概念1.3 dokcer API未授权漏洞浮现1.3.1 验证是否存在漏洞1.3.2 未授权复现步骤1.3.2 未授权操作容器1.4 扩展方法--docker未授权getshell1.4.1 获取shell的方法一:反弹shell1.4.2 挂载宿主机…

win10如何开启麦克风权限,win10麦克风权限设置

手机下载软件后,总是会跳出各种权限需要,例如访问通讯录、读取位置信息、启动相机等等。电脑上的应用也有这些权限设置,比如说玩游戏、直播、或录制视频时,我们需要打开麦克风权限,否则无法进行交流和录音。但是,win10如何开启麦克风权限呢?针对这个问题,小编已整理了两…

构建现代Web应用:JavaScript与Node.js的完美搭档

文章目录 JavaScript基本解释补充前端开发定义DOM树和JavaScript的角色浏览器引擎的进化动态内容更新SPA Node.js JavaScript 基本解释 javaScript的出现使得前端变的强大了很多。前端开发指的是&#xff0c;写一些代码&#xff0c;这些代码最终可以转化为浏览器可以懂的代码…

《自动机理论、语言和计算导论》阅读笔记:p115-p138

《自动机理论、语言和计算导论》学习第 6 天&#xff0c;p115-p138 总结&#xff0c;总计 24 页。 一、技术总结 1.associativity and comutativity (1)commutativity(交换性): Commutativity is the property of an operator that says we can switch the order of its ope…

python flask生成被控服务端 开放接口 可以调用本地程序启动D盘的app.py文件,并生成一个前端文件,有一个启动按钮

要创建一个使用 Flask 的被控服务端&#xff0c;开放接口以调用本地程序并启动 D 盘的 app.py 文件&#xff0c;以及生成一个带有启动按钮的前端文件&#xff0c;你需要做以下几个步骤&#xff1a; 设置 Flask 服务端&#xff1a;创建一个 Flask 应用&#xff0c;并定义一个 A…

大型C++代码一些英文缩写理解

1.Cfg"通常是指"Configuration"&#xff0c;即"配置"的意思 2.“info"通常是指"information”&#xff0c;也就是"信息"的意思 3.DLG通常表示"Dialog"&#xff0c;即对话框的意思 4.opt表示选择 5"Img"可能表…

比KMP简单的Manacher

P3805 【模板】manacher - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) “没时间悼念KMP了&#xff0c;接下来上场的是Manacher&#xff01;” 什么是Manacher? 历史背景&#xff1a; 1975 年&#xff0c;一个叫 Manacher 的人发明了这个算法&#xff0c;所以叫Manacher 算…

Kratos 基础学习记录

一、安装golang环境 golang的安装和系统变量配置的教程有很多&#xff0c;简单列举几个教程: windows: 超详细Go语言环境安装(有图详解)_go环境安装-CSDN博客 linux: 【Linux — 安装 Go】Linux 系统安装 Go 过程总结_linux 安装go-CSDN博客 mac: mac安装Golang开发环境…

财务管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 目录 1. …