Twilio的新手,成功地遵循了SMS Python Quickstart guide,并且将两位组合在一起,但是现在有了一些冗余代码,如果没有错误,我似乎无法摆脱它们。
我有Python代码,该代码从短信中获取坐标,然后将其转换为Google Maps链接,然后将该链接发送到其他电话号码。
但是,当前它还会将此回复发送到原始发件人的电话号码,因为这是您设置的原始指南。
我只希望它将邮件发送到指定的号码,而不是回复原始发件人。
run.py:
# /usr/bin/env python
# Download the twilio-python library from twilio.com/docs/libraries/python
from flask import Flask, request
from twilio.twiml.messaging_response import MessagingResponse
# Download the helper library from https://www.twilio.com/docs/python/install
from twilio.rest import Client
# Your Account Sid and Auth Token from twilio.com/console
account_sid = 'account_sid'
auth_token = 'auth_token'
client = Client(account_sid, auth_token)
app = Flask(__name__)
@app.route("/", methods=['GET', 'POST'])
def sms_reply():
messages = client.messages.list()
print(messages[0].body)
coord = messages[0].body
lat,lon = coord.split(":")
mapURL = "https://www.google.com/maps/search/?api=1&query=" + lat + "," + lon
message = client.messages.create(
body=mapURL,
from_='+442030954643',
to='+447445678954'
)
"""Respond to incoming messages with a friendly SMS."""
# Start our response
resp = MessagingResponse()
# Add a message
resp.message(mapURL)
return str(resp)
if __name__ == "__main__":
app.run(debug=True)
每当我删除与发送给发件人的回复邮件有关的行时,似乎都会破坏我仍然需要的其他行。
非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
这是因为您的sms_reply
函数中的输出正在返回发送消息的TwiML。我认为从服务中获得一些反馈是正常的。如果您不想使用mapURL进行回复,则可以说“谢谢”。
否则,您可以看一下TwiML documentation,看看您还可以执行其他哪些操作。
答案 1 :(得分:0)
这里是Twilio开发人员的传播者。
您不需要回复传入的消息,可以通过返回空的TwiML响应来避免这种情况。
作为一个额外的胜利,您不必调用API即可获取发送的最后一条消息的正文。这将在端点的POST请求参数中可用。您可以通过request.form
访问它们,因此Body参数将在request.form['Body']
上可用。
尝试这样的事情:
# /usr/bin/env python
# Download the twilio-python library from twilio.com/docs/libraries/python
from flask import Flask, request
from twilio.twiml.messaging_response import MessagingResponse
# Download the helper library from https://www.twilio.com/docs/python/install
from twilio.rest import Client
# Your Account Sid and Auth Token from twilio.com/console
account_sid = 'account_sid'
auth_token = 'auth_token'
client = Client(account_sid, auth_token)
app = Flask(__name__)
@app.route("/", methods=['GET', 'POST'])
def sms_reply():
coord = request.form['Body']
lat,lon = coord.split(":")
mapURL = "https://www.google.com/maps/search/?api=1&query=" + lat + "," + lon
message = client.messages.create(
body=mapURL,
from_='+442030954643',
to='+447445678954'
)
# Start our empty response
resp = MessagingResponse()
return str(resp)
if __name__ == "__main__":
app.run(debug=True)