2017-07-08 28 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

相关问题