"if" 声明在 twilio 短信项目中行为异常

"if" statement acting weird in twilio texting project

我正在尝试创建一个短信项目,我可以在其中发送一个 twilio 号码,并根据消息内容我可以使用自定义消息进行回复。我正在使用一串 if 语句来检查文本的主体并回复某些内容

app = Flask(__name__)

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

def sms_reply():
  reply_pointer = 0
  body = request.values.get('Body', None)
  resp = MessagingResponse()

  print(body)

  if(body == "Test1"): reply_pointer = 0
  elif(body == "Test2"): reply_pointer = 1
  elif(body == "Test3"): reply_pointer = 2
  elif(body == "Test4"): reply_pointer = 3


  print(reply_pointer)

我正在从我的 phone 发送这些消息,如果我通过 Test3 发送 Test1,我会得到正常结果,但是当我向 Test4 发送短信时,reply_pointer 设置为 0,如果我发送它,它会保持为 0文本 Test1、Test2 等。我已经尝试解决这个问题很长时间了,但我不知道发生了什么。

问题出在 body 内容上。 我在本地测试了你代码的底部,如果 body 确实是 "Test4":

,它就可以正常工作
>>> reply_pointer = 0
>>> body = "Test4"
>>> 
>>> if(body == "Test1"): reply_pointer = 0
... elif(body == "Test2"): reply_pointer = 1
... elif(body == "Test3"): reply_pointer = 2
... elif(body == "Test4"): reply_pointer = 3
... 
>> reply_pointer
3

检查 body 是否不包含任何其他字符。您可以将 body == "Test4" 替换为 "Test4" in body,以检查匹配的子字符串。