发表于 2025-8-18 17:19:03
|
显示全部楼层
湖南省长沙市
窗口程序集名 保 留 保 留 备 注 程序集1 变量名 类 型 数组 备 注 token_cache 文本型 2 logger 日志类 client_id 文本型 client_secret 文本型 robot_code 文本型
变量名 类 型 静态 数组 备 注 命令行参数 文本型 0 i 整数型 参数名 文本型 参数值 文本型
logger.
初始化 ( ) logger.
设置日志级别 ( 日志级别_信息
) 命令行参数 =
取命令行参数 ( ) 计次循环首 ( 取数组成员数 ( 命令行参数
) , i
) 如果真 ( 取文本左边 ( 命令行参数
[ i
] , 2
) = "--"
) 参数名 =
取文本中间 ( 命令行参数
[ i
] , 3,
取文本长度 ( 命令行参数
[ i
] ) - 2
) 如果真 ( i <
取数组成员数 ( 命令行参数
) )
参数值 = 命令行参数
[ i + 1
] 如果 ( 参数名 = "client_id"
) client_id = 参数值
.
否则如果 ( 参数名 = "client_secret"
) client_secret = 参数值
.
否则如果 ( 参数名 = "robot_code"
) robot_code = 参数值
logger.
写日志 ( 日志级别_警告, "未知参数: " + 参数名
) 计次循环尾 ( ) 如果 ( client_id = ""
或 client_secret = ""
或 robot_code = ""
) logger.
写日志 ( 日志级别_错误, "缺少必要参数,请提供client_id、client_secret和robot_code"
) 返回 ( 1
) token_cache
[ 1
] = "0"
logger.
写日志 ( 日志级别_信息, "钉钉机qi人程序启动成功"
) 模拟消息监听 ( ) 返回 ( 0
) 模拟会话ID = "模拟群会话ID_123456"
logger.
写日志 ( 日志级别_信息, "开始监听消息..."
) 计次循环首 ( 5,
) 处理接收到的消息 ( 模拟会话ID
) 延迟 ( 5000
) 计次循环尾 ( ) 处理接收到的消息 open_conversation_id 文本型
变量名 类 型 静态 数组 备 注 access_token 文本型
logger.
写日志 ( 日志级别_信息, "收到消息,会话ID: " + open_conversation_id
) access_token =
获取Token ( ) 如果 ( access_token ≠ ""
) 发送机qi人群消息 ( access_token, open_conversation_id
) logger.
写日志 ( 日志级别_错误, "获取access_token失败"
) 变量名 类 型 静态 数组 备 注 现在时间 整数型 过期时间 整数型 响应文本 文本型 json解析 类_json解析 状态码 整数型 token 文本型 过期时间秒 整数型
现在时间 =
取现行时间戳 ( ) 过期时间 =
到整数 ( token_cache
[ 1
] ) 如果 ( token_cache
[ 0
] ≠ ""
且 现在时间 < 过期时间
) 返回 ( token_cache
[ 0
] ) logger.
写日志 ( 日志级别_信息, "获取新的access_token..."
) 响应文本 =
网页_访问S ( "https://api.dingtalk.com/v1.0/oauth2/accessToken", , "grant_type=client_credentials&client_id=" +
编码_URL编码 ( client_id
) + "&client_secret=" +
编码_URL编码 ( client_secret
) , , , 状态码
) 如果 ( 状态码 ≠ 200
) logger.
写日志 ( 日志级别_错误, "获取token失败,状态码: " +
到文本 ( 状态码
) + ",响应: " + 响应文本
) 返回 ( ""
) json解析.
解析 ( 响应文本
) token = json解析.
取属性值 ( “accessToken” ) 过期时间秒 =
到整数 ( json解析.
取属性值 ( “expireIn” ) )
如果 ( token ≠ ""
) token_cache
[ 0
] = token
token_cache
[ 1
] =
到文本 ( 现在时间 + 过期时间秒 - 200
) logger.
写日志 ( 日志级别_信息, "获取access_token成功"
) 返回 ( token
) logger.
写日志 ( 日志级别_错误, "解析token失败,响应: " + 响应文本
) 返回 ( ""
) 发送机qi人群消息 access_token 文本型 open_conversation_id 文本型
变量名 类 型 静态 数组 备 注 响应文本 文本型 状态码 整数型 请求头 文本型 请求数据 文本型 json解析 类_json解析
logger.
写日志 ( 日志级别_信息, "发送群消息到会话: " + open_conversation_id
) 请求头 = "Content-Type: application/json" +
#换行符 + "x-acs-dingtalk-access-token: " + access_token
json解析.
清空 ( ) json解析.
添加键值对 ( “msgParam” ,
“{"content":"易语言机qi人 say:hello"}” ) json解析.
添加键值对 ( “msgKey” ,
“sampleText” ) json解析.
添加键值对 ( “openConversationId” , open_conversation_id
) json解析.
添加键值对 ( “robotCode” , robot_code
) 请求数据 = json解析.
转换为文本 ( ) 响应文本 =
网页_访问S ( “https://api.dingtalk.com/v1.0/robot/groupMessages/send” , 1, 请求数据, 请求头, , 状态码
) 如果 ( 状态码 = 200
) logger.
写日志 ( 日志级别_信息, "消息发送成功,响应: " + 响应文本
) logger.
写日志 ( 日志级别_错误, "消息发送失败,状态码: " +
到文本 ( 状态码
) + ",响应: " + 响应文本
) 窗口程序集名 保 留 保 留 备 注 日志类 变量名 类 型 数组 备 注 日志级别 整数型
日志级别 = 日志级别_信息
日志级别 = 级别
变量名 类 型 静态 数组 备 注 时间字符串 文本型 级别字符串 文本型
如果 ( 级别 > 日志级别
) 返回
时间字符串 =
取时间字符串 ( 取现行时间 ( ) ,
#日期时间格式 ) 判断 ( 级别 = 日志级别_调试
) 级别字符串 = "DEBUG"
判断 ( 级别 = 日志级别_信息
) 级别字符串 = "INFO"
判断 ( 级别 = 日志级别_警告
) 级别字符串 = "WARNING"
判断 ( 级别 = 日志级别_错误
) 级别字符串 = "ERROR"
判断 ( 级别 = 日志级别_致命
) 级别字符串 = "FATAL"
级别字符串 = "UNKNOWN"
输出调试文本 ( 时间字符串 + "
[ " + 级别字符串 + "
] " + 内容
) 日志级别_调试 0 日志级别_信息 1 日志级别_警告 2 日志级别_错误 3 日志级别_致命 4