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

Twilio WhatsApp沙盒测试获取图片遇401错误(20003码)求助

问题分析与解决方法
  • MediaUrl0并非公开链接:你提到的api.twilio.com开头的MediaUrl0不是公开AWS链接,它是Twilio API的媒体资源代理端点,无论沙盒还是正式环境,访问都必须携带Twilio账号的认证信息,这是你误解的核心点。

  • 20003错误本质是认证失败:这个错误码明确表示请求未通过Twilio的身份校验。哪怕用测试账号SID和令牌初始化了Client,也要确保访问媒体资源的方式正确:

    • 不要直接发起普通HTTP请求访问MediaUrl0,而是通过Twilio Client的内置方法获取媒体内容;
    • 如果一定要直接请求该URL,必须在请求头中添加Basic Auth,将测试账号SID作为用户名,认证令牌作为密码。
  • 正确的媒体获取方式示例:
    用Twilio Client处理的代码:

    from twilio.rest import Client
    from flask import request
    
    # 初始化Client(替换为你的测试账号信息)
    account_sid = '你的测试SID'
    auth_token = '你的测试令牌'
    client = Client(account_sid, auth_token)
    
    # 从Webhook请求中提取媒体SID
    media_sid = request.values.get('MediaSid0')
    if media_sid:
        # 通过Client获取并保存媒体文件
        media = client.media(media_sid).fetch()
        with open('received_media.jpg', 'wb') as f:
            f.write(media.read())
    

    直接请求URL并携带认证的代码:

    import requests
    from flask import request
    
    media_url = request.values.get('MediaUrl0')
    if media_url:
        response = requests.get(
            media_url,
            auth=('你的测试SID', '你的测试令牌')
        )
        if response.status_code == 200:
            with open('received_media.jpg', 'wb') as f:
                f.write(response.content)
    
  • 沙盒环境无特殊权限:Twilio WhatsApp沙盒的媒体资源和正式环境遵循相同的认证规则,不存在无需认证的公开访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:52:36