无法使用 Twilio 发送 Whatsapp 模板消息

问题描述 投票:0回答:1

我正在使用 Twillio 向我的客户发送 Whatsapp 消息,以获取有关他们正在使用的服务的更新,但我根本无法发送消息。我正在使用 NodeJS 的 twilio SDK v5.0.1

我有什么

  • 我在 Twillio 中创建的模板,已获得 Whatsapp 批准。
  • 一个whatsapp企业ID和一个号码,“发件人状态”为在线

我的模板如下所示:

身体

Hi! Your {{2}} booking has been updated!

示例内容:

BMW

按钮

https://[website]/view-booking?bookingId={{1}}

类型:

Visit website

文字:

View booking

示例内容 =

-wn54Cw5WO-G3QFUKHP_6dT6PEfApuiloZNoMdTuMZs%3D

这是我尝试过的两件事:

exports.sendSMS = async (phoneNumber) => {
  const accountSid = "";
  const authToken = "";
  const client = new twilio(accountSid, authToken);

  return await client.messages
    .create({
      contentSid: "[sid]",
      contentVariables: JSON.stringify({
        1: "BMW",
        2: "-wn54Cw5WO-G3QFUKHP_6dT6PEfApuiloZNoMdTuMZs%3D",
      }),
      from: "whatsapp:+[number]",
      to: `whatsapp:+${formatUKPhoneNumber(phoneNumber)}`,
    })
    .then((message) => {
      console.log(message);
      return message.sid;
    })
    .catch((e) => {
      console.log(`error0: ${e}`);
    });
};

我遇到的错误是

error0: Error: A text message body or media urls must be specified.

exports.sendSMS = async (phoneNumber) => {
  const accountSid = "";
  const authToken = "";
  const client = new twilio(accountSid, authToken);

  return await client.messages
    .create({
      body: "Hi! Your BMW booking has been updated!",
      from: "whatsapp:+[number]",
      to: `whatsapp:+${formatUKPhoneNumber(phoneNumber)}`,
    })
    .then((message) => {
      console.log(message);
      return message.sid;
    })
    .catch((e) => {
      console.log(`error0: ${e}`);
    });
};

这个不会返回错误,但 Twillio 日志显示消息已失败(如下)

node.js twilio whatsapp
1个回答
0
投票

您在这里混合了两种不同的方法。

您提到的第一个是使用内容模板生成器。在那里,您可以向 Meta 提交另一个模板,然后通过 ID 引用该模板并提供要插入的变量。

from
messagingServiceSid
属性中指定消息传递服务非常重要。这是要求

client.messages
      .create({
         contentSid: 'HXXXXXXXXX',
         from: 'MGXXXXXXXX',
         contentVariables: JSON.stringify({
           1: 'Name'
         }),
         to: 'whatsapp:+18551234567'
       })
      .then(message => console.log(message.sid));

第二个是使用相当严格的 WhatsApp 模板 - 出现的空格或编码可能会使模板的有效使用无效。 我建议使用第一种方法,但您需要确保首先创建正确的内容模板。

© www.soinside.com 2019 - 2024. All rights reserved.