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

部署在PythonAnywhere的Flask+Twilio WhatsApp机器人报11200错误

解决PythonAnywhere部署Flask-Twilio WhatsApp Bot的11200错误及连接问题

看起来你遇到的核心问题有两个:一是PythonAnywhere环境无法连接到Twilio API导致的ConnectionError,二是你错误地在client.messages.create()中添加了无效参数引发的TypeError。下面一步步帮你解决:

1. 先修复无效参数的错误

你在create()方法里加的AC84a8b5837227246efc0c6f9440b6e12c='83ce0b901ff353f9b9a77222e001d71d'完全没必要——因为你已经在初始化Client时传入了account_sid和auth_token,Twilio库会自动用这些信息做认证,额外传这个参数只会触发类型错误。把这行删掉,恢复原来的create调用即可。

2. 解决PythonAnywhere无法连接Twilio API的问题

从错误日志看,你的应用无法建立到api.twilio.com的HTTPS连接,这通常是环境配置或依赖版本的问题,按以下步骤排查:

步骤1:确保Flask路由返回响应

你的bot()函数没有返回任何内容,虽然Flask默认会返回200 OK,但Twilio的Webhook明确期望收到一个响应来确认请求已处理。显式返回一个响应能避免Twilio误判请求失败,也有助于调试:

@app.route('/post', methods=['POST'])
def bot():
    incoming_msg = request.values.get('Body', '').lower()
    phono = request.values.get('From', "")
    if incoming_msg == 'hi':
        mmsg(phono, 'hello!')
    return 'OK'  # 必须添加这行

步骤2:更新Twilio和Requests依赖

旧版本的Twilio库或Requests库可能存在SSL连接或网络适配问题,在PythonAnywhere的控制台中激活你的虚拟环境并更新依赖:

workon my-virtualenv
pip install --upgrade twilio requests

步骤3:确认账户信息正确

再次检查你的account_sid和auth_token是否完全正确——复制时不要带多余的空格或换行符,确保和Twilio控制台里的信息一致。

步骤4:验证PythonAnywhere的出站连接

PythonAnywhere免费账户允许连接大部分公共API(包括Twilio的),你可以在控制台用curl测试连接是否正常:

curl https://api.twilio.com/2010-04-01/Accounts.json

如果返回401 Unauthorized,说明连接是通的,只是认证问题(只要你的SID和token正确就没问题);如果连curl都无法连接,可能需要联系PythonAnywhere支持确认网络配置。

修正后的完整代码

from flask import Flask, request
from twilio.rest import Client

account_sid = 'xxxxx'  # 替换为你的真实Account SID
auth_token = 'xxxxx'   # 替换为你的真实Auth Token
client = Client(account_sid, auth_token)

def mmsg(phono, body):
    try:
        message = client.messages.create(
            from_='whatsapp:+14155238886',
            body=body,
            to=phono,
        )
        print(f"消息发送成功,SID: {message.sid}")  # 调试用,可查看PythonAnywhere日志
    except Exception as e:
        print(f"发送失败:{str(e)}")  # 捕获异常方便排查

app = Flask(__name__)

@app.route('/post', methods=['POST'])
def bot():
    incoming_msg = request.values.get('Body', '').lower()
    phono = request.values.get('From', "")
    if incoming_msg == 'hi':
        mmsg(phono, 'hello!')
    return 'OK'

if __name__ == '__main__':
    app.run()

完成以上步骤后,重新部署你的应用到PythonAnywhere,应该就能正常接收和回复WhatsApp消息了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 14:08:10