You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Twilio与PHP发送WhatsApp模板消息报错求助

使用Twilio PHP发送WhatsApp模板消息示例

问题根源

你之前直接将变量替换到文本中作为普通消息发送,这不符合Twilio模板消息的发送规则。Twilio要求发送模板消息时,必须指定已审核通过的模板标识,并单独传递变量参数,而非直接替换模板内容后发送。

核心要求

  • 确保你的WhatsApp模板已在Twilio控制台提交并通过审核,模板占位符为{{1}}、{{2}}这类格式
  • 发送时需通过Twilio API指定模板,变量值单独以数组形式传递,不能直接拼接成普通文本

完整代码示例

<?php
// 引入Twilio PHP SDK(需先通过Composer安装)
require_once 'vendor/autoload.php';

use Twilio\Rest\Client;

// 替换为你的Twilio账户信息
$accountSid = '你的Twilio账户SID';
$authToken = '你的Twilio认证Token';
$twilioWaNumber = 'whatsapp:+14155238886'; // Twilio官方WhatsApp号码
$recipientWaNumber = 'whatsapp:+目标用户的WhatsApp号码'; // 接收方号码

// 初始化Twilio客户端
$client = new Client($accountSid, $authToken);

try {
    // 发送模板消息
    $message = $client->messages->create(
        $recipientWaNumber,
        [
            'from' => $twilioWaNumber,
            // 使用模板SID(优先推荐,避免名称冲突)
            'contentSid' => '你的模板SID',
            // 或者使用模板名称:'contentTemplateName' => '你的模板名称',
            // 传递模板变量值,对应模板中的{{1}}、{{2}}等占位符
            'contentVariables' => json_encode([
                '{{1}}' => '客户姓名', // 对应模板中的{{1}}
                '{{2}}' => '你的姓名', // 需先将模板中的*sameName*改为{{2}}
                '{{3}}' => '你的联系电话', // 需先将模板中的*SomeTel*改为{{3}}
                '{{4}}' => '你的邮箱地址' // 需先将模板中的*SomeEmail*改为{{4}}
            ])
        ]
    );

    echo "模板消息发送成功,消息SID: " . $message->sid;
} catch (Exception $e) {
    echo "发送失败: " . $e->getMessage();
}
?>

关键注意事项

  • 若模板中的*sameName*、*SomeTel*、*SomeEmail*是固定签名内容,无需作为变量,需确保模板本身已包含这些固定内容,发送时仅传递{{1}}对应的客户姓名即可
  • 模板审核通过后,才能通过API调用发送,否则会报错
  • 确保contentVariables中的键与模板占位符完全一致(比如{{1}}),值对应实际内容

内容的提问来源于stack exchange,提问作者david

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 05:45:23