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

如何在WordPress中通过Twilio API的JSON格式发送带PDF的WhatsApp消息?

在WordPress中通过Twilio API发送带PDF文件的WhatsApp消息

前提准备

  • 确保PDF文件公开可访问:可上传至WordPress媒体库并复制永久链接,若站点有防盗链/私有设置,需暂时关闭或改用公开CDN存储,保证Twilio能正常拉取文件
  • 确认Twilio账号已开通WhatsApp业务,发送号码完成验证

修改现有代码实现带PDF发送

以下两种方案适配你已有的WhatsApp消息发送逻辑:

方案1:使用Twilio PHP SDK(推荐)

在原有发送逻辑中添加mediaUrl参数即可传递PDF链接:

// 引入Twilio SDK(若未引入)
require_once 'path/to/vendor/autoload.php';

use Twilio\Rest\Client;

// Twilio账号配置
$sid = '你的Twilio Account SID';
$token = '你的Twilio Auth Token';
$twilio_number = 'whatsapp:+你的Twilio号码';
$recipient_number = 'whatsapp:+接收方号码';

// 获取PDF公开URL(示例为WordPress媒体库文件链接)
$pdf_url = 'https://你的域名/wp-content/uploads/2024/xx/your-file.pdf';

try {
    $client = new Client($sid, $token);
    
    $message = $client->messages->create(
        $recipient_number,
        [
            'from' => $twilio_number,
            'body' => '这是附带PDF的消息文本',
            'mediaUrl' => [$pdf_url] // 支持传入多个媒体URL数组
        ]
    );

    // 可选:记录发送日志
    error_log('消息发送成功,SID: ' . $message->sid);
} catch (Exception $e) {
    error_log('发送失败:' . $e->getMessage());
}

方案2:直接发送JSON格式API请求

若无需依赖SDK,可通过cURL发送JSON请求:

$sid = '你的Twilio Account SID';
$token = '你的Twilio Auth Token';
$twilio_number = 'whatsapp:+你的Twilio号码';
$recipient_number = 'whatsapp:+接收方号码';
$pdf_url = 'https://你的域名/wp-content/uploads/2024/xx/your-file.pdf';

// 构建请求JSON数据
$post_data = [
    'From' => $twilio_number,
    'To' => $recipient_number,
    'Body' => '这是附带PDF的消息文本',
    'MediaUrl' => [$pdf_url]
];

// 初始化cURL
$ch = curl_init('https://api.twilio.com/2010-04-01/Accounts/' . $sid . '/Messages.json');

// 设置cURL参数
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Basic ' . base64_encode($sid . ':' . $token)
]);

// 执行请求
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

// 处理响应
if ($http_code == 201) {
    error_log('消息发送成功');
} else {
    error_log('发送失败,响应内容:' . $response);
}

关键注意事项

  • 文件限制:Twilio支持的PDF最大为5MB,必须是HTTP/HTTPS公开链接,本地路径无法被拉取
  • 权限问题:若WordPress媒体文件设为私有,需调整权限或改用公开存储服务
  • 合规要求:确保PDF内容符合WhatsApp平台合规规范,避免发送受限内容
  • 错误排查:建议保留日志记录,方便定位发送失败原因

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:15:58