2017-01-22 61 views
1

我正在开发一个python脚本,它将查找特定位置的纬度和经度,并将其存储在文本文件中。该位置将通过短信发送到python脚本。我可以在python中使用'geocode'库查找经度和纬度的后期部分,但我不确定如何接受来自SMS的数据。如何发送短信到python脚本?

我以前曾使用过TWILIO模块,并且我知道如何通过Python脚本将SMS发送到使用它的电话号码。但我想知道从电话号码接收SMS消息的过程,然后在python脚本中使用该消息体进行进一步操作。

这是我是如何被发送短信的电话号码 -

import os 
from twilio.rest import TwilioRestClient 
accountSID = '****' 
authToken = '***' 
twilioCli = TwilioRestClient(accountSID, authToken) 
myTwilioNumber = '+1 ***' 
myCellPhone = '+***' 
message = twilioCli.messages.create(body=string, from_=myTwilioNumber, to=myCellPhone) 

如果你能提供一个解决方案做上述过程即相反接收,而不是将其发送,通过TWILIO服务短信,它会非常有帮助。

回答

2

如果您熟悉Twilio,那么您也可以使用它来接收短消息。只需注册一个号码(这将是我们的接收器),并在Messaging - >A message comes in部分添加webhook。你的webhook是一个端点,它实现了获取POST动作的消息。那么你可以根据需要process received messages

你可以在official website找到详细的教程。

编辑:

什么流?

  1. 你编写一个应用程序(在教程 - 在瓶实现)。您必须在应用程序服务器上运行它。例如,您的域名是john-smith.com。
  2. 你注册一个终点为webhook。您的终点是john-smith.com/sms。
  3. 您向Twilio注册的号码发送短信。
  4. 当短消息到达时,它由Twilio处理,并作为POST请求发送到您的应用指定为webhook的URL。

这是教程的Python代码(flask应用程序)。这是您提取号码和消息的地方。这也是你的应用程序。

from flask import Flask, request 
from twilio import twiml 

app = Flask(__name__) 

@app.route('/sms', methods=['POST']) 
def sms(): 
    number = request.form['From'] 
    message_body = request.form['Body'] 

    resp = twiml.Response() 
    resp.message('Hello {}, you said: {}'.format(number, message_body)) 
    return str(resp) 

if __name__ == '__main__': 
    app.run() 

message_body变量接收到的SMS消息。你可以随心所欲地做任何事情。

+0

我对这个webhook部分有点困惑。我在那里指定什么?另外,一旦我在webhook部分添加了所需的参数,我如何在我的python代码中提取它?任何示例的例子将不胜感激。 –

+0

@johnsmith你好,我编辑了一个答案,现在是干净的吗? :) –

+0

谢谢这有助于。我会更新任何问题。 –

1

短信Python中发送一个简单的代码:

from smsapi import SmsApi 

apikey = "675031878xxxxxxxxx" sender = "SEDEMO" 

sms = SmsApi(apikey, sender) 

sms = sms.send_sms(

recipient="902000xxxx", 

message="test message" 

) 

确保您从https://github.com/spring-edge/ Github上库复制smsapi.py类文件,并放置在同一目录中。在上面的代码中,收件人是目的手机号码和短信主体。