对于在 24 小时窗口之外发送 Whatsapp 消息,我们需要一个 Whatsapp 批准的模板。作为 Whatsapp 模板和 twilio 上的内容编辑器提供的选项有什么区别。
我现在知道的是,通过内容编辑器创建的模板被他们的 sid 用于在 24 小时窗口之外发送消息。但是其他模板有什么用,当我尝试使用它的 sid 生成消息时,它们是错误的 -
{
"code": 20422,
"message": "Invalid Parameter",
"more_info": "https://www.twilio.com/docs/errors/20422",
"status": 400
}
如果可能的话,我如何使用使用 Whatsapp 模板选项创建的模板??
好问题。我知道这有点令人困惑。让我尝试解释一下这两件不同的事情:
WhatsApp 消息模板是一种消息格式,您可以反复使用它向用户发送消息 (...)。要使用消息模板,您必须首先将其提交到 WhatsApp。 Meta 会审核并批准每个消息模板,以保持高质量的内容并避免垃圾邮件。一旦 WhatsApp 批准了您的模板,您就可以使用该消息模板发送通知。
来自文档
TLDR:这些消息必须经过 Meta 批准,并且可以在 24 小时窗口之外使用。
如上面的截图所示
您可以使用带有
messages.create()
属性的普通 body
函数但是您需要确保正文与模板完全匹配(包括空格、编码等)
// Download the helper library from https://www.twilio.com/docs/node/install
// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = require('twilio')(accountSid, authToken);
client.messages
.create({
from: 'whatsapp:+15005550006',
body: 'Hi, Joe! Thanks for placing an order with us. We’ll let you know once your order has been processed and delivered. Your order number is O12235234. Thanks',
to: 'whatsapp:+14155238886'
})
.then(message => console.log(message.sid));
使用 Twilio 的内容 API 通过任何 Twilio 支持的消息通道创建和发送丰富的消息内容。当您构建消息传递用户体验时,Content API 提供了一个通用框架来在所有渠道中保持一致的用户体验,而无需担心实现细节。
来自文档
TLDR:这些模板并非 WhatsApp 独有,并且根据消息类型,是否绑定到 24 小时窗口。
如截图所示:
您使用普通的
messages.create()
功能 但是您需要使用 contentSid
属性来指定您要使用的模板,并且您需要消息服务作为发送者。
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = require('twilio')(accountSid, authToken);
client.messages
.create({
contentSid: 'HXXXXXXXXX',
from: 'MGXXXXXXXX',
contentVariables: JSON.stringify({
1: 'Name'
}),
to: 'whatsapp:+18551234567'
})
.then(message => console.log(message.sid));