@c78/node-red-contrib-wecom-group-chat-bot
Version:
Enterprise WeChat group chat WebHook robot
100 lines (83 loc) • 3.77 kB
HTML
<script type="text/html" data-template-name="wecom-image">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> 名称</label>
<input type="text" id="node-input-name" placeholder="节点名称">
</div>
<div class="form-row">
<label for="node-input-server"><i class="fa fa-cog"></i> 机器人配置</label>
<input type="text" id="node-input-server">
</div>
<div class="form-row">
<label for="node-input-inputType"><i class="fa fa-sign-in"></i> 输入类型</label>
<select id="node-input-inputType">
<option value="base64">Base64编码</option>
<option value="buffer">Buffer对象</option>
</select>
</div>
<div class="form-row">
<label for="node-input-autoMD5"><i class="fa fa-hashtag"></i> 自动计算MD5</label>
<input type="checkbox" id="node-input-autoMD5" style="width: auto;">
<label for="node-input-autoMD5" style="width: auto;">自动计算图片MD5值</label>
</div>
</script>
<script type="text/markdown" data-help-name="wecom-image">
企业微信图片消息节点
### 配置项
- **名称**:节点名称
- **机器人配置**:选择企业微信机器人配置节点
- **输入类型**:选择图片数据的输入格式
- Base64编码:接受base64编码的字符串
- Buffer对象:接受Buffer对象
- **自动计算MD5**:是否自动计算图片的MD5值(推荐开启)
### 输入格式
#### Base64编码模式
- `msg.payload` (string):base64编码的图片字符串
#### Buffer对象模式
- `msg.payload` (buffer):Buffer对象,建议用 file 节点读取图片文件
### 输出
: msg.response (object) : 企业微信API的响应信息(成功时)
: msg.imageData (object) : 图片信息摘要(包含base64前50个字符、md5值和输入类型)(成功时)
: msg.payload.error (boolean) : true 表示发生错误(失败时)
: msg.payload.message (string) : 错误信息(失败时)
: msg.payload.originalPayload (any) : 原始消息内容(失败时)
: msg.payload.inputType (string) : 当前使用的输入类型(失败时)
### 图片要求
- 图片大小:不超过2MB
- 支持格式:JPG、PNG
- 编码格式:Base64编码或Buffer对象
### 注意事项
- 根据实际输入数据格式选择合适的输入类型
- Base64模式适合处理已编码的字符串数据
- Buffer模式适合处理原始二进制数据
- 建议开启"自动计算MD5"选项,确保数据完整性
- 图片大小不能超过2MB,否则发送会失败
- 即使发送失败,节点也会继续输出消息流,错误信息会包含在payload中
### 错误处理
- 如果数据格式不正确,会抛出相应的格式错误
- 如果图片数据为空,会抛出"消息内容不能为空"错误
- 如果Buffer转base64失败,会抛出转换错误
- 如果图片大小超过限制,企业微信API会返回相应错误
</script>
<script type="text/javascript">
RED.nodes.registerType('wecom-image', {
category: '企业微信',
color: '#27B4F1',
defaults: {
name: { value: "" },
server: { value: "", type: "wecom-config", required: true },
inputType: { value: "base64" },
autoMD5: { value: true }
},
inputs: 1,
outputs: 1,
icon: "font-awesome/fa-image",
label: function() {
return this.name || "企业微信图片";
},
oneditprepare: function() {
if (this.autoMD5 === undefined) {
$("#node-input-autoMD5").prop('checked', true);
}
}
});
</script>