2017-06-22 1 views
0

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!" 

、私は同じコードを3回繰り返しています。それは動作しますが、それは醜いだと私はこのようになります別の関数を作成したいので、スペースをとり...

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はちょうど "アプリケーションエラーが発生しました"と言います

私はここで何が欠けていますか?

答えて

1

第2のパターンは、関数caller()が最終的な "成功"を返すようにします。 試してみてください:

return voicemail(brand, phone, campaign) 
+0

それでした。どうもありがとうございます! – freefly0313

関連する問題