我正在寻找一种方法,以获得用户的位置,理想的经度/纬度,但地址也将工作,从Alexa技能工具包要求,从我的自定义技能。此外,我也不想让用户链接到我的应用程序的帐户。
这个是可能的吗?如果是这样的话,是怎么做的?
发布于 2016-05-02 23:46:35
根据在Amazon Developer论坛上的这个帖子的说法,目前(截至2016年5月)还没有一种通过公开的API获取用户位置的方法。唯一能够做到这一点的技能,如Uber或Domino,是利用通过Alexa技能工具包无法获得的API。然而,随着"Jamie@Amazon“在讨论中留下这一答复,有希望增加它:
嘿,你们好, 谢谢你发帖。 这一点现在已被添加到路线图中。感谢您的反馈。 杰米
然而,在编写本报告时,尚未提供关于执行这一功能的进一步最新情况。
发布于 2017-04-05 14:22:18
发布于 2017-04-15 21:39:59
正如@Tom所指出的,现在可以在您的自定义技能中获得设备地址。如果您正在使用Python来创建您的技能,那么很容易实现新的API。我写了一篇关于它的详细博客文章,这里。它还描述了如何为检索到的地址获取相应的坐标,因此它可能对您很有用。简而言之,这里有一个Python函数可以让您开始工作。我使用非常方便的酒瓶库作为我的技能。因此,很容易获得deviceId和consentToken对象的值。这些被Alexa包含在发送给您的JSON请求中。它们是构建对Amazon address API端点的请求所必需的:
import requests
from flask_ask import Ask, context
def get_alexa_location():
URL = "https://api.amazonalexa.com/v1/devices/{}/settings" \
"/address".format(context.System.device.deviceId)
TOKEN = context.System.user.permissions.consentToken
HEADER = {'Accept': 'application/json',
'Authorization': 'Bearer {}'.format(TOKEN)}
r = requests.get(URL, headers=HEADER)
if r.status_code == 200:
return(r.json())如果调用成功,该函数将返回类似的内容:
{u'city': u'Berlin', u'countryCode': u'DE',
u'addressLine1': u'42 Unter den Linden',
u'addressLine2': None, u'stateOrRegion': u'Berlin',
u'districtOrCounty': u'Berlin', u'postalCode': u'10117',
u'addressLine3': None}您可以使用地势将此地址转换为坐标。
https://stackoverflow.com/questions/36986139
复制相似问题