UNPKG

@c78/node-red-contrib-wecom-group-chat-bot

Version:
100 lines (83 loc) 3.77 kB
<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>