钉钉PC端使用 Blazor WebAssembly 读取用户信息
Posted 707wk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了钉钉PC端使用 Blazor WebAssembly 读取用户信息相关的知识,希望对你有一定的参考价值。
功能: 在钉钉内打开 Blazor WebAssembly 网站时, 读取钉钉当前的用户信息, 并显示启用的功能列表
版本: .NET6
界面库: Ant Design Blazor
基础要求:
1. 让公司管理员设置自己为钉钉开发者
2. 下载 钉钉RC版 作为调试工具, 下载地址: https://open.dingtalk.com/document/resourcedownload/h5-debug
3. 钉钉开发者后台 -> 企业内部开发 -> 新建H5微应用. 在开发管理中设置服务器出口IP、应用首页地址、PC端首页地址. 在权限管理中开通 调用OpenApp专有API时需要具备的权限 权限
4. 有固定公网IP, 建议使用域名绑定
5. 已经使用钉钉的服务端SDK搭建了服务端
在项目的 index.html 文件的 body 里添加
<script src="https://g.alicdn.com/dingding/dingtalk-jsapi/3.0.12/dingtalk.open.js"></script> <script> // 获取钉钉免登码 window.GetUserAuthCode = (corpId) => dd.ready(function () dd.runtime.permission.requestAuthCode( corpId: corpId, onSuccess: function (result) //alert(result.code); DotNet.invokeMethodAsync(\'ERPQueryTool\', \'StaticDingTalkLogined\', result.code); /* code: \'hYLK98jkf0m\' //string authCode */ , onFail: function (err) ); ); ; // 在钉钉内下载文件 window.DingTalkDownloadFile = (url, name) => dd.ready(function () dd.biz.util.downloadFile( url: url, //要下载的文件的url name: name, //定义下载文件名字 onProgress: function (msg) // 文件下载进度回调 , onSuccess: function (result) /* true */ , onFail: function () ) ); ; // 在钉钉内下载后打开保存目录 window.DingTalkOpenFolderAfterDownloadFile = (url, name) => dd.ready(function () dd.biz.util.downloadFile( url: url, //要下载的文件的url name: name, //定义下载文件名字 onProgress: function (msg) // 文件下载进度回调 , onSuccess: function (result) /* true */ dd.biz.util.openLocalFile( url: url, //本地文件的url,指的是调用DingTalkPC.biz.util.downloadFile接口下载时填入的url,配合DingTalkPC.biz.util.downloadFile使用 onSuccess: function (result) /* true */ , onFail: function () ); , onFail: function () ); ); ; </script>
在项目的 MainLayout.razor 里添加
private static Action<string>? LoginedAction; protected override async void OnAfterRender(bool firstRender) base.OnAfterRender(firstRender); if (!firstRender) return; LoginedAction = DingTalkLogined; StartDingTalkLogin(); // 调用JS方法, 获取 authCode private async void StartDingTalkLogin() await JS.InvokeAsync<string>("GetUserAuthCode", Tool.LoginHelper.DingTalkCorpId); // JS方法回调 [JSInvokable] public static void StaticDingTalkLogined(string authCode) LoginedAction?.Invoke(authCode); // 根据 authCode 获取用户信息 private async void DingTalkLogined(string authCode) // 调用服务端获取 authCode 对应的用户信息 // 获取启用的功能列表
最终效果:
参考资料:
https://open.dingtalk.com/document/orgapp/read-before-development
https://antblazor.com/zh-CN/docs/introduce
jenkins 集成钉钉机器人通知
公司使用钉钉做为公司内部的通讯工具,所以想通过Jenkins发布完成以后通过钉钉来通知大家,研究发现钉钉提供机器人,所以我把机器人集成进来通知相关人员。
1.创建通知人群组,添加机器人(钉钉默认自带了配置好的机器人,但是没有Jenkins机器人);
注意:钉钉机器人的配置需要在PC端完成;
2.获取自定义机器人webhook
3.jenkins 安装"Dingding[钉钉] Plugin"插件;
4.插件安装完成后,创建/修改任务中,在"构建后的操作"->"增加构建后操作步骤"中,选择"钉钉通知器配置"
注意: Jenkins URL配置中需要在最后添加"/",要不然会导致拼接的url出错,这里填写有问题会导致无法从钉钉中跳转到Jenkins任务;
5.点击构建,钉钉会立马收到消息,点击消息跳转到对应的任务
以上是关于钉钉PC端使用 Blazor WebAssembly 读取用户信息的主要内容,如果未能解决你的问题,请参考以下文章