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

使用Python开发Twilio短信服务无法接收入站短信,如何解决?

解决Twilio入站短信接收问题的步骤
  • 检查Twilio号码的Webhook配置
    登录Twilio控制台,找到你的目标短信号码,查看「当收到消息时」的设置:

    • 确认选择的是「Webhook」选项(若用TwiML Bin或其他服务需对应配置)
    • 确保Webhook的URL是公网可访问的HTTP/HTTPS地址,localhost或内网地址无法被Twilio访问
    • 验证请求方法为POST(Twilio默认使用POST,若选GET需确保代码逻辑匹配)
  • 确认Webhook的可访问性

    • 用curl、Postman等工具模拟Twilio请求发送到你的Webhook地址,检查是否能正常返回响应
    • 检查服务器/应用的防火墙、安全组规则,确保放行Twilio官方IP段的请求
    • 本地开发时,必须用ngrok这类工具将本地端口映射到公网,否则Twilio无法触达你的服务
  • 核查Python代码的Webhook处理逻辑

    • 确保Web框架(如Flask/Django)的路由正确指向入站短信处理接口,以下是Flask的基础示例:
    from flask import Flask, request
    
    app = Flask(__name__)
    
    @app.route('/receive-sms', methods=['POST'])
    def handle_inbound_sms():
        # 打印请求参数用于调试
        print(f"发送方: {request.form.get('From')}, 内容: {request.form.get('Body')}")
        # 必须返回合法的TwiML响应,否则Twilio会判定请求失败
        return '<Response></Response>'
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=5000)
    
    • 代码必须返回有效的TwiML(即使是空的<Response>标签),否则Twilio不会记录该条入站短信
    • 添加异常捕获逻辑,避免代码报错导致返回500错误,这类错误会让Twilio标记Webhook无效
  • 排查Twilio日志与错误信息

    • 进入Twilio控制台的「Monitor」->「Logs」->「Messaging」,切换到「Inbound」标签查看记录
    • 若存在失败记录,根据错误提示修复:比如「Webhook URL unreachable」需检查URL可达性,「Invalid TwiML」需修正响应格式
    • 确认Twilio账号无欠费情况,欠费会暂停入站短信服务
  • 验证号码的接收权限

    • 确认购买的Twilio号码支持短信接收功能(部分虚拟号码仅支持发送)
    • 检查号码所属地区是否允许接收回复,避免地区限制导致短信无法送达

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:41:34