如何在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
相关产品推荐
相关产品推荐

