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

WhatsApp Business API发送PDF报12300错误及本地PDF发送问题咨询

问题排查与解决方案

12300 - Invalid Content-Type 报错原因排查

  • 你当前填入的Google Drive链接为文件预览页链接,并非PDF资源直链,Twilio拉取该地址时返回的Content-Type为text/html,不符合WhatsApp API要求的application/pdf类型,直接触发校验报错。
  • 若你已使用直链格式仍报错,请检查Google Drive文件权限是否设置为「所有获取到链接的用户可查看」,权限不足时拉取请求会跳转至权限验证页面,同样返回html内容导致类型不匹配。
  • 校验方法:将你填写的mediaUrl复制到浏览器无痕窗口打开,若直接触发PDF下载/在线预览则符合要求,若跳转至Google Drive登录、分享页则为无效链接。

MediaUrl传入本地PDF与Twilio Assets配置方法

注意:MediaUrl必须为公网可无鉴权直接访问的资源直链,本地文件路径(如C:\files\test.pdf)无法被Twilio服务器访问,不能直接填入

Twilio Assets配置失败常见原因

  • 上传的PDF资源权限设置为「私有」,Twilio API无法无鉴权拉取资源,需将资源权限修改为「公开」,复制获取到的公开直链填入即可。
  • 资源直链无明确.pdf后缀,导致Twilio识别Content-Type错误,需确保直链后缀为.pdf,若为接口形式需在响应头中显式指定Content-Type: application/pdf。

本地PDF传入方案

  • 将本地PDF上传至公网可匿名访问的对象存储、静态资源服务器,设置允许跨域与匿名访问,获取资源直链后填入MediaUrl。
  • 在本地服务中新增静态资源路由,将本地PDF所在目录暴露为公网可访问的GET路径,响应头显式设置Content-Type: application/pdf,将该公网路径填入MediaUrl。

修正后代码示例

static void Main(string[] args)
{
    var accountSid = "你的Twilio账户SID";
    var authToken = "你的Twilio授权Token";
    TwilioClient.Init(accountSid, authToken);
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
    // 替换为符合要求的PDF公网直链:Google Drive直链/公开Twilio Assets链接/自有服务静态资源直链
    var mediaUrl = new[] {
        new Uri("替换为有效PDF公网直链")
    }.ToList();
    
    var messageOptions = new CreateMessageOptions(
        new PhoneNumber("whatsapp:+91XXXXXX"));
    messageOptions.From = new PhoneNumber("whatsapp:+XXXXXXXX");
    messageOptions.Body = "Hello how are you?";
    messageOptions.MediaUrl = mediaUrl;
    var message = MessageResource.Create(messageOptions);
    Console.WriteLine(message.Body);
    Console.ReadLine();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 03:57:00