首页 > 解决方案 > python twilio flask:索引超出范围

问题描述

我正在设置一个 twillo SMS 机器人,并希望将烧瓶的传入响应拆分到一个列表中并检查并检查响应是否具有add, list,remove

from flask import Flask, request
from twilio.twiml.messaging_response import MessagingResponse

app = Flask(__name__)


@app.route("/sms", methods=['GET', 'POST'])


#define method to split the input


def sms_ahoy_reply():



    """Respond to incoming messages with a friendly SMS."""
    # Start our response
    resp = MessagingResponse()
    country = request.values.get('FromCountry')
    toDoList = []
    splitext = request.args.get('body','').split()
    msgSplit = list(splitext)
    if msgSplit[0] == 'add':
        toDoList.append(msgSplit[1:])
    elif msgSplit[0] == 'list':
        resp.message(msgSplit[1:])
    elif msgSplit[0] == 'remove':
        deL = msgSplit[1]
        if deL!=0:
            del msgSplit[deL-1]
        else:
            del msgSplit[deL]


    # Add a message
    resp.message("Hi! It looks like your phone number was born in %s" %country)


    return str(resp)

if __name__ == "__main__":
    app.run(debug=True)

标签: pythonflasksmstwiliongrok

解决方案


Twilio 开发人员布道者在这里。

您应该更改splitext = request.args.get('body','').split()splitext = request.values.get('body','').split().

request.args是 URL 查询字符串中的键/值对(即http://website.com/index?arg1=hello&arg2=world)。用于 URL Query 参数,通过 GET 请求从 URL 中获取参数

request.values是 和 的args组合form。更多信息在 Flask 文档中。


推荐阅读