iPhone将我当前的位置发送到Twili

2024-05-23 19:45:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个webhook,可以处理任何发送到我Twilio号码的短信。但是,这个webhook只有在消息中有文本时才起作用(GET请求中将有一个主体)。在

如果消息是位置消息,是否可以对其进行解析?e、 如果我把我当前的位置发送到我的Twilio号码,它将这个消息作为一个GET请求重定向到webhook,我可以检索到那个位置吗?在

如果我在iPhone上发送我的当前位置,webhook会收到以下信息:

at=info method=GET path="/sms/?ToCountry=US&MediaContentType0=text/x-vcard&ToState=NJ&SmsMessageSid=MMde62b3369705a8f65f18abe5b7387c2b&NumMedia=1&ToCity=NEWARK&FromZip=07920&SmsSid=MMde62b3369705a8f65f18abe5b7387c2b&FromState=NJ&SmsStatus=received&FromCity=SOMERVILLE&Body=&FromCountry=US&To=%2B18627019482&ToZip=07102&NumSegments=1&MessageSid=MMde62b3369705a8f65f18abe5b7387c2b&AccountSid=ACe72df68a68db79d9a4ac6248df6e981e&From=%2B19083925806&MediaUrl0=https://api.twilio.com/2010-04-01/Accounts/ACe72df68a68db79d9a4ac6248df6e981e/Messages/MMde62b3369705a8f65f18abe5b7387c2b/Media/MEcd56717ce17f3a320b06c4ee11df2243&ApiVersion=2010-04-01"

为了比较,下面是一条普通的短信:

at=info method=GET path="/sms/?ToCountry=US&ToState=NJ&SmsMessageSid=SM4767dabb915fae749c7d5b59d6f655a2&NumMedia=0&ToCity=NEWARK&FromZip=07920&SmsSid=SM4767dabb915fae749c7d5b59d6f655a2&FromState=NJ&SmsStatus=received&FromCity=SOMERVILLE&Body=Denver+E+union&FromCountry=US&To=%2B18627019482&ToZip=07102&NumSegments=1&MessageSid=SM4767dabb915fae749c7d5b59d6f655a2&AccountSid=ACe72df68a68db79d9a4ac6248df6e981e&From=%2B19083925806&ApiVersion=2010-04-01"

在普通的sms消息中,我可以解析出Body=Denver+E+union来获取消息,但我不确定您是否可以对位置消息的内容做任何操作。在

如果我不能得到位置,还有什么其他简单的方法可以发送一个可解析的位置?在


Tags: info消息getbodywebhooksms短信at
2条回答

Twilio开发者布道者。在

正如Devin在评论中指出的,这个位置已经作为附在邮件中的Vcard发送了。请求中的URL作为MediaUrl0,链接到一个Vcard,如下所示:

BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//iOS 10.3.2//EN
N:;YOUR_NAME’s Location;;;
FN:YOUR_NAME’s Location
item1.URL;type=pref:http://maps.apple.com/?ll=39.576254\,-104.865774&q=39.576254\,-104.865774
item1.X-ABLabel:map url
END:VCARD

如您所见,它附带了一个applemaps的URL,这并不是最有用的东西。但是,您还可以看到URL中包含了您所在位置的经纬度。可以想象,您可以解析这个URL并提取查询参数来获取位置。但正如Devin所指出的,这可能会随着设备的不同而改变。您可能需要使用一些不同的选项进行测试,以确保这是可伸缩的。在

如果有什么帮助,请告诉我。在

我解决了一个类似的问题,创建了一个基本的网页,使用HTML5地理定位功能来获取电话的lat/lng。然后通过AJAX将坐标提交给php脚本。在

我的服务器对员工的位置进行地理编码,计算到下一个工作的旅行时间,并使用Twilio API向客户发送一条带有ETA信息的短消息。在

您可以完全绕过Twilio,让服务器直接向webhook发出请求,如果请求都在同一个域中,甚至可以通过AJAX调用。我想,一切都取决于你想达到什么目的。在

相关问题 更多 >