2017-07-08 35 views
1

同樣在ngrok中,當嘗試使用twilio發出發佈請求時,會出現內部服務器錯誤500。爲什麼我得到錯誤AttributeError:'模塊'對象在我的短信應用程序中沒有與Twilio接口的屬性「響應」?

這裏就是我覺得有一個問題我的代碼段:

from flask import Flask, request 
from twilio import twiml 
import wolframalpha 
import wikipedia 

app = Flask(__name__) 

wolf = wolframalpha.Client(wolfram_app_id) 


@app.route('/', methods=['POST']) 
def sms(): 

    message_body = request.form['Body'] 
    resp = twiml.Response() 

    replyText = getReply(message_body) 
    resp.message('Hi\n\n' + replyText) 
    return str(resp) 

我已經更新ngrok,蟒蛇,twilio和瓶的所有最新版本。 我也按照所有步驟來激活virtualenv。

+0

你能嘗試運行'這python'?您所遵循的[Make:project](http://makezine.com/projects/sms-bot/)表示使用的是什麼版本的Python並不重要,但我有一種感覺,那就是它需要2.7根據[Twilio文檔](https://www.twilio.com/docs/quickstart/python/twiml/say-response#let-twilio-find-your-server)。 (我相信Python3中可能不支持'twiml.Response()',你似乎說你的Python是最新版本,所以這可能是衝突)。 – cosinepenguin

+0

這次我實際上使用python版本2.7重新運行程序,但我仍然得到相同的錯誤。我知道我使用2.7,因爲它顯示在終端上。另外,我嘗試使用簡單的Python程序向我的手機發送文本,並通過twilio進行工作。但是,包含更多代碼行的pyhton文件:維基百科和wolfram會收到一條消息並將其發送回去似乎沒有任何作用。 – user8273233

+0

你能上傳可用的代碼(發送文本到你的手機)嗎?在問題代碼中調用Response的方式可能存在問題。 – cosinepenguin

回答

3

Twilio開發人員在這裏傳播。

如果您使用的是最新版本的Twilio Python module,那麼沒有Response方法。相反,由於您正在回覆郵件,因此您需要改用MessagingResponse

嘗試以下操作:

from flask import Flask, request 
from twilio.twiml.messaging_response import Message, MessagingResponse 
import wolframalpha 
import wikipedia 

app = Flask(__name__) 

wolf = wolframalpha.Client(wolfram_app_id) 


@app.route('/', methods=['POST']) 
def sms(): 

    message_body = request.form['Body'] 
    resp = MessagingResponse() 

    replyText = getReply(message_body) 
    resp.message('Hi\n\n' + replyText) 
    return str(resp) 
+0

這工作!非常感謝你。 – user8273233

+0

沒問題!與您的其他應用程序祝好運。 – philnash

相關問題