Twilio SMS Python-简单地发送消息

时间:2018-07-04 08:58:13

标签: python http sms twilio

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)

每当我删除与发送给发件人的回复邮件有关的行时,似乎都会破坏我仍然需要的其他行。

非常感谢任何帮助,谢谢!

2 个答案:

答案 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)