钉钉自定义机器人加签认证(HmacSHA256)C#实现

原文:钉钉自定义机器人加签认证(HmacSHA256)C#实现

0.UTF-8字符集

1.把timestamp+"\n"+密钥当做签名字符串,

2.使用HmacSHA256算法计算签名

3.然后进行Base64 encode

4.最后再把签名参数再进行urlEncode,得到最终的签名。


参数


说明


timestamp


当前时间戳,单位是毫秒,与请求调用时间误差不能超过1小时


secret


密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串

签名计算代码示例(Java)

?


1

2

3

4

5

6

Long timestamp = System.currentTimeMillis();

String stringToSign = timestamp + "\n" + secret;

Mac mac = Mac.getInstance("HmacSHA256");

mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256"));

byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));

return URLEncoder.encode(new String(Base64.encodeBase64(signData)),"UTF-8");

C#版示例

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

        private static byte[] getHmac(string message, string secret)

        {

            byte[] keyByte = Encoding.UTF8.GetBytes(secret);

            byte[] messageBytes = Encoding.UTF8.GetBytes(message);

            using (var hmacsha256 = new HMACSHA256(keyByte))

            {

                byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);

                return hashmessage;

            }

        }

        public static Int64 ToUTC(this DateTime time)

        {

            var zts = TimeZoneInfo.Local.BaseUtcOffset;

            var yc = new DateTime(1970, 1, 1).Add(zts);

            return (long)(DateTime.Now - yc).TotalMilliseconds;

        }

main.cs

            var secret = "123";

            var timeStamp = DateTime.Now.ToUTC();

            var stringToSign = $"{timeStamp}\n{secret}";

            var b64 = getHmac(stringToSign, secret);

            var b64Str = Convert.ToBase64String(b64);

            var sign = HttpUtility.UrlEncode(b64Str);

            url = $"{url}&timestamp={timeStamp}&sign={sign}";

  ok!



原文地址:https://www.cnblogs.com/lonelyxmas/p/12409092.html

时间: 2024-10-07 14:41:23

钉钉自定义机器人加签认证(HmacSHA256)C#实现的相关文章

通知神器——java调用钉钉群自定义机器人

创建群自定义机器人 在指定钉钉群(或者随便拉两个人建个群,然后把别人T出去)的群设置里选择 群机器人 -> 自定义,如图: 然后,添加机器人,设置名字,添加成功时如下图: 其中webhook非常重要,下文详述.点击设置说明可以看相关使用文档,文档链接见本文末尾. 使用HTTP POST请求发送消息 直接向上文所述的webhook链接发送POST请求已达到自定义机器人向群内发消息的功能 按照文档中所属的参数格式直接向链接发送请求即可,我使用Postman发送请求如下: 效果如下: 发送其他格式(如

钉钉群机器人

微信的Web网页版,很多新号都己经是用不了.所以微信的WEB协议是没法玩的了. 对于需要在一个群里自动发信息,目前也只能是用钉钉的.钉钉支持自定义机器人,说白了就是你往一个群里推送消息. 协议也比较简单,可以自行到这里看https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq.但目前还不支持问答模式(瞬间也觉得不好玩了). 自定义机器人,还有个限制,就是一分钟只能发20条.20条确实是少了点,但是一个群可以建立6个机器人,6*20就是120

钉钉自定义机器人配合SVN钩子事件进行消息的推送实践

目前很多公司还是使用SVN(TortoiseSVN)进行版本控制,使用简单,适合管理一般项目.协同办公软件目前钉钉比较成熟,阿里也一直在宣传推广,这两年公司也在使用,主要用于信息的沟通,其它的绩效.考勤.日志.审批等都是挂载的我们公司内部的系统,很方便,之后钉钉推出了钉钉机器人,一开始觉得没用,也就一直没关注,但是最近我看了钉钉自定义机器人,觉得这个可以好好利用起来,看到网上也有这方面的应用说明,看着很简单,但是按照流程操作起来各种坑,而且相关知识过于碎片化,今天我在这里进行一下简单的整合,梳理

重新拾取:TFS2017钉钉机器人源代码签入通知

http://www.cnblogs.com/79039535/p/9316791.html 现在很多公司办公都使用钉钉打卡签到,于是鉴于公司也使用钉钉就打算用钉钉来做一个源代码签入通知. 首先先去打开官方网站了解钉钉的通知,钉钉机器人提供了很多模板(GitHub啊,GitLab啊, Coding啊) 但是没有TFS~ 哈哈! 这里我们选择 自定义机器人 <钉钉开放平台机器人文档> 设置机器人名字,就是聊天对话时显示的名称 拿到webhook就可以进行服务挂钩了~. 现在登录你的TFS站点 -

钉钉机器人自定义通知-python

创建一个钉钉群然后添加一个自定义的机器人 安全设置是必填项 自定义关键字:报警 钉钉发送通知时,必须包含 关键子 "报警" 不然会 报 keyword not in content. 钉钉文档: https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq 机器人创建成功后,针对文档中发送钉消息类型选择合适的进行触发. python 脚本 body={ "msgtype": "markdown", &q

钉钉自定义机器人webhook

这篇博文主要讲的是如何进行自定义定时发送一些text类的消息的自定义机器人.添加过程不细讲了. 首先我们需要拿到一个Hook地址,就是你在添加自定义机器人的时候有个,如图: 然后开始编写我们的脚本,我比较喜欢用Python写脚本: 1 import requests 2 import json 3 4 def getDingMes(): 5 6 baseUrl = " your hook address." 7 8 # please set charset= utf-8 9 HEADE

python 小脚本升级-- 钉钉群聊天机器人

一则小脚本(工作中用) 在这篇文章中写的监控的脚本,发送监控的时候 是利用的邮箱,其实在实际,邮箱查收有着不方便性,于是乎升级, 我们工作中,经常用钉钉,那么如果要是能用到钉钉多好,这样我们的监控成功后直接发送给我们的钉钉,简单方便 在钉钉开发文档有这么一个地方 ,自定义机器人 这个应该能够满足我们的办公要求吧,先来实验实验,打开钉钉,选择机器人管理. 使用自定义的机器人,点击 选择群,选择生成的机器人 然后创建, 这样我们的机器人创建成功,我们去看着文档的要求去,可惜官方没有python版本,

Jenkins与钉钉机器人实现手机端获取当前服务日志

马上要过年了,各位运维们除了因为买不到回家的火车票而嚎嚎大哭之外也开始扩容服务器和提前调整监控值,目的就是为了过一个消停的春节.可是这毕竟十天左右不在公司,要是模块真出了什么意外肯定没法第一找到日志分析问题,毕竟这几天都在串门拜年和醉生梦死中度过,走到哪都要再背一个笔记本实在太不方便了. 那么这个时候,我就琢磨使用手机端来启动服务器里脚本,让这个脚本可以去获取当前的日志,然后再把结果返回到手机端.这样就不用到哪里都带那个一看就很扫兴的公司笔记本电脑了. 使用手机端启动服务器里脚本?我又不会开发a

centos7 yum 安装zabbix设置钉钉机器人报警

原文地址 网上有很多zabbix使用钉钉触发告警信息的攻略, 需要注意的是zabbix3.2不能使用那些攻略进行触发报警. 至于监控内容啥的不在这篇文章里谈及, 我们这里只谈报警部分. 作者这里的环境基本都是centos 7.4 以及zabbix3.2 yum 安装,如果读者用的其他系统, 或安装方式不同, 此文章仅供参考. 搭建好zabbix3.2环境,然后: 从网上下载一下钉钉的zabbix机器人: 钉钉-zabbix-robot 解压缩并放在你的任意位置,改名为dingding.sh并放到