aardio 钉钉机器人范例

本文档介绍了如何使用aardio创建钉钉机器人,包括无来源验证的企业内部群交互和有来源验证的安全请求方式,同时展示了通过URL向群机器人发送消息的应用场景。

aardio 钉钉机器人范例

1.企业内部机器人(群内@机器人可进行交互)

无来源验证

import wsock.tcp.simpleHttpServer;
import console;

var server = wsock.tcp.simpleHttpServer("127.0.0.1",8080);

console.setTitle("web服务器已启动");
console.log("web服务器运行中")
console.log( server.getUrl() )

server.run(
	function(response,request){
		import web.json
		var msg = 
		{
    		"sessionWebhook": "https://oapi.dingtalk.com/robot/sendBySession?session="+request.sessionId,
    		"text": {
        		"content": "reply 你好"
    		},
    		"msgtype": "text"
		}

		response.write(msg)
	}
)

注意:

  1. 钉钉机器人设定处为关键字回复。
  2. 该代码仅演示原理,并未进行来源校验。

有来源验证的

import wsock.tcp.simpleHttpServer;
import console;

var server = wsock.tcp.simpleHttpServer("127.0.0.1",8080);

console.setTitle("web服务器已启动");
console.log("web服务器运行中")
console.log( server.getUrl() )

server.run(
	function(response,request){
			function getSecretKey(timestamp){
				import crypt.hmac
				import crypt.bin;
				var appSecret = "机器人的appSecret"
				var stringToSign = timestamp + '\n'+ appSecret;
				var hmacData = crypt.hmac.sha256(appSecret,stringToSign).getValue()
				hmacData = crypt.bin.encodeBase64( hmacData );
				return hmacData;
			}

			var sign = request.headers.sign
			var timestamp = request.headers.timestamp	

			var tm = time()
			var	timeStr = tonumber(tm)*1000 + ::Kernel32.GetSystemTime(tm)
			
			if(	getSecretKey(timestamp) == sign && timestamp - timeStr < 3600000)
			{
				import web.json
				var msg = 
				{
    				"sessionWebhook": "https://oapi.dingtalk.com/robot/sendBySession?session="+request.sessionId,
    				"text": {
        				"content": "reply 你好"
    				},
    				"msgtype": "text"
				}
				msg = web.json.stringify(msg)	
				response.write(msg)
			}
	}
)

按照官方文档要求,对sign进行比对和timestamp限制,才属于安全的合法请求。
具体文档参考:https://developers.dingtalk.com/document/robots/enterprise-created-chatbot

2.通过URL发送消息给群机器人

import web.json
import inet.http;

var msg = 
	{
	
	"at":{
    	"isAtAll": true
    	},
    	"text": {
        	"content":mainForm.edit.text
    	},
    	"msgtype": "text"
	}
	msg = web.json.stringify(msg)


var http = inet.http();
var html,err,errCode = http.post("https://oapi.dingtalk.com/robot/send?access_token=410c807fcad8f03688cd293c56ff8ec8f4766b3ae9aa2f75f*****************"
    ,msg);
http.close();

if( html ){
	var json = web.json.parse(html);
	if(json.errcode == 0 ){
		//完成
		
	}else{
		//错误
}			

应用场景:程序执行完成,通过URL将完成/错误消息发至钉钉群内。

结语

通过钉钉提供的ding-pireced,可以很容易的将个人电脑设置为服务器。完成小业务足矣。
配合anydesk,管理也十分方便。
anydesk

软件介绍 快手AAuto Quicker更名为aardioaardio是专用于桌面软件快速开发的新一代混合型编程语言, 兼具动态、静态语言优势,语法更可兼容大部分流行语言,学习成本低,开发速度快,并永久免费。 一键发布为绿色软件。生成独立EXE执行文件。唯一能同时支持动态类型、静态类型开发的语言。兼容流行C系语法、Pascal语法,学习成本最低。可内嵌C语言、汇编、Java、PHP、Javascript、VBS.支持面向对象、Ducking Type、支持中文编程。支持COM动态、静态接口、支持标准DLL组件。标准库全部开源、全部使用AAuto代码编写。提供可视化开发环境,支持多线程开发。支持用网页开发软件界面、可与HTML、JS无缝整合。完美支持web自动化、轻松开发网站机器人。完美支持所有游戏辅助工具技术。 一句代码即可实现CALL外部EXE函数。支持内存读写、抓包、鼠标、按键模拟、监控。 自aardio10开始,aardio已支持网站开发、FastCGI服务端开发,使用 wsock.tcp.simpleHttpServer 甚至只需要一句代码就可以创建一个微型嵌入式HTTP服务端(可以结合浏览器组件方便的用于桌面软件的Web界面开发),aardio语法可直接支持与PHP类似的HTML模板语法,提供语言级别的模板解析,一个aardio源码文件,可以放aardio源码,也可以直接放html,或者放html,aardio混合的模板代码,aardio都能完美支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值