From 707cc505de0f54bbdfce597215be0809c8024a46 Mon Sep 17 00:00:00 2001 From: Lei OT Date: Mon, 25 Mar 2024 12:12:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=8D=E6=9D=82=E7=9A=84=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/msgUtils.js | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/src/lib/msgUtils.js b/src/lib/msgUtils.js index 0610874..edaa653 100644 --- a/src/lib/msgUtils.js +++ b/src/lib/msgUtils.js @@ -100,7 +100,7 @@ export const sentMsgTypeMapped = { photo: { type: 'image', contentToSend: (msg) => ({ - ...mediaMsg.contentToSend({...msg, type: 'image'}), + ...mediaMsg.contentToSend({ ...msg, type: 'image' }), msgtype: 'image', }), contentToRender: (msg) => ({ @@ -112,7 +112,7 @@ export const sentMsgTypeMapped = { sticker: { type: 'sticker', contentToSend: (msg) => ({ - ...mediaMsg.contentToSend({...msg, type: 'sticker'}), + ...mediaMsg.contentToSend({ ...msg, type: 'sticker' }), msgtype: 'sticker', }), contentToRender: (msg) => ({ @@ -151,7 +151,33 @@ export const sentMsgTypeMapped = { }), }, whatsappTemplate: { - contentToSend: (msg) => ({ action: 'message', actionId: msg.id, renderId: msg.id, to: msg.to, msgtype: 'template', msgcontent: { ...msg.template, components: msg.template.components.filter(com => com.type.toLowerCase() === 'body') }}), // todo: 其他组件不发送是否可以 + contentToSend: (msg) => ({ + action: 'message', + actionId: msg.id, + renderId: msg.id, + to: msg.to, + msgtype: 'template', + msgcontent: { + ...msg.template, + components: [ + ...msg.template.components.filter((com) => !['footer', 'buttons', 'header'].includes(com.type.toLowerCase())), + ...(msg.template.components.filter((com) => 'header' === com.type.toLowerCase()).length > 0 + ? msg.template.components + .filter((com) => 'header' === com.type.toLowerCase()) + .map((ele) => ({ type: 'header', parameters: [{ text: ele.text, type: ele.format.toLowerCase(), [ele.format.toLowerCase()]: { link: ele.example.header_url[0] } }] })) + : []), + ...(msg.template.components.filter((com) => 'buttons' === com.type.toLowerCase()).length > 0 + ? msg.template.components + .filter((com) => 'buttons' === com.type.toLowerCase())[0] + // .buttons.filter((btns) => ! ['phone_number', 'url'].includes( btns.type.toLowerCase())) + .buttons.filter((btns) => ! isEmpty(btns.example)) // 静态按钮不发 + .map((btn, btnI) => ({ type: 'button', sub_type: btn.type.toLowerCase(), index: btnI, + // parameters: [{ text: 'lq1FTtA8', type: 'text' }] + })) + : []), + ], + }, + }), contentToRender: (msg) => { const templateDataMapped = msg.template?.components ? msg.template.components.reduce((r, v) => ({ ...r, [v.type]: v }), {}) : null; // const templateParam = (templateDataMapped?.body?.parameters || []).map(e => e.text);