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

Twilio发送短信时To参数用变量传入后号码前多32导致HTTP报错

问题根因定位
  • 变量类型非法:你给出的示例代码中phoneNumber = +14403943924 没有加引号,是数字类型而非Twilio要求的E.164格式字符串。前缀的+会被解析为正号,SDK做类型转换时极易出现异常拼接。
  • 隐藏字符转换异常:如果phoneNumber是从表单、数据库、第三方接口获取的,大概率变量首尾带了ASCII码为32的空格字符。部分日志/SDK在处理不可见字符时会直接输出对应的ASCII码数值,导致最终传给接口的号码变为32+14403943924。
  • 拼接逻辑错误:如果你的号码是动态拼接国家码和本地号码生成的,检查国家码变量是否被误赋值为32,或者拼接逻辑中多带入了其他变量的数值。
修复步骤
  1. 先修正变量类型:所有Twilio号码参数必须是带引号的字符串,修改赋值代码为:
phoneNumber = "+14403943924"
  1. 增加调试代码定位异常:在调用发送接口前打印变量的原始结构,确认是否有隐藏字符或者类型错误:
# 输出变量原始表示,可识别隐藏的空白、转义字符
print(repr(phoneNumber))
# 输出变量类型,确认是str而非int/float
print(type(phoneNumber))

如果输出结果存在首尾空白,调用phoneNumber = phoneNumber.strip()清除所有首尾不可见字符。
3. 如果是动态拼接号码,单独打印国家码、本地号码的取值,确认没有误拼接其他数值。
4. 临时验证方案:可以先对传入的to参数做强制清洗,确认功能是否恢复:

message = client.messages.create(
    to=str(phoneNumber).strip(), 
    from_="+14397829146",
    body= message
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 16:45:04