调用python函数时出现应用程序错误
问题描述:
我正在构建一个语音邮件应用程序,通过Twilio接收电话,接收消息,然后将信息记录在Airtable数据库中。我有一切工作正常,但它是很多重复的代码,所以我想巩固它,但我在调用函数时遇到错误。调用python函数时出现应用程序错误
这是我现在有...
@app.route("/call", methods=['GET', 'POST'])
def caller():
phone = request.values.get('From', None)
campaign = request.values.get('To')
if campaign == brand_1.phone:
brand = brand_1
resp = VoiceResponse()
resp.play(brand.recording)
resp.record(maxLength="30")
recording_url = request.values.get("RecordingUrl", None)
brand.at.create('Leads', data = {'Phone':phone,'Campaign':campaign, 'Voicemail':recording_url})
return str(resp)
elif campaign == brand_2.phone:
brand = brand_2
resp = VoiceResponse()
resp.play(brand.recording)
resp.record(maxLength="30")
recording_url = request.values.get("RecordingUrl", None)
brand.at.create('Leads', data = {'Phone':phone,'Campaign':campaign, 'Voicemail':recording_url})
return str(resp)
elif campaign == brand_3.phone:
brand = brand_3
resp = VoiceResponse()
resp.play(brand.recording)
resp.record(maxLength="30")
recording_url = request.values.get("RecordingUrl", None)
brand.at.create('Leads', data = {'Phone':phone,'Campaign':campaign, 'Voicemail':recording_url})
return str(resp)
return "Success!"
正如你所看到的,我重复相同的代码三次。它的工作原理,但它的丑陋和占用空间,所以我想创建一个单独的功能,看起来像这样...
def voicemail(brand, phone, campaign):
resp = VoiceResponse()
resp.play(brand.recording)
resp.record(maxLength="30")
recording_url = request.values.get("RecordingUrl", None)
brand.at.create('Leads', data = {'Phone':phone,'Campaign':campaign, 'Voicemail':recording_url})
return str(resp)
所以我想有这个样子......
@app.route("/call", methods=['GET', 'POST'])
def caller():
phone = request.values.get('From', None)
campaign = request.values.get('To')
if campaign == brand_1.phone:
brand = brand_1
voicemail(brand, phone, campaign)
elif campaign == brand_2.phone:
brand = brand_2
voicemail(brand, phone, campaign)
elif campaign == brand_3.phone:
brand = brand_3
voicemail(brand, phone, campaign)
return "Success!"
这似乎应该工作,但事实并非如此。 Twilio只是说“发生了应用程序错误”
我在这里错过什么家伙?
答
第二种模式使功能caller()
只返回最后的“成功”。 您应该尝试:
return voicemail(brand, phone, campaign)
这样做了。非常感谢! – freefly0313