首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Alexa技能工具包获得位置(询问)

从Alexa技能工具包获得位置(询问)
EN

Stack Overflow用户
提问于 2016-05-02 15:30:18
回答 4查看 9.6K关注 0票数 21

我正在寻找一种方法,以获得用户的位置,理想的经度/纬度,但地址也将工作,从Alexa技能工具包要求,从我的自定义技能。此外,我也不想让用户链接到我的应用程序的帐户。

这个是可能的吗?如果是这样的话,是怎么做的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-02 23:46:35

根据在Amazon Developer论坛上的这个帖子的说法,目前(截至2016年5月)还没有一种通过公开的API获取用户位置的方法。唯一能够做到这一点的技能,如Uber或Domino,是利用通过Alexa技能工具包无法获得的API。然而,随着"Jamie@Amazon“在讨论中留下这一答复,有希望增加它:

嘿,你们好, 谢谢你发帖。 这一点现在已被添加到路线图中。感谢您的反馈。 杰米

然而,在编写本报告时,尚未提供关于执行这一功能的进一步最新情况。

票数 6
EN

Stack Overflow用户

发布于 2017-04-05 14:22:18

亚马逊现在(2017-04-05)增加了这一功能。关于他们的新设备地址API,请参阅他们的博客文章

使用此新API,您可以获得设备的地址(邮政编码或完整地址),如客户设备设置中指定的那样。

由此,您可以使用地理编码API (如Google的一部分)将地址转换为位置坐标。

票数 15
EN

Stack Overflow用户

发布于 2017-04-15 21:39:59

正如@Tom所指出的,现在可以在您的自定义技能中获得设备地址。如果您正在使用Python来创建您的技能,那么很容易实现新的API。我写了一篇关于它的详细博客文章,这里。它还描述了如何为检索到的地址获取相应的坐标,因此它可能对您很有用。简而言之,这里有一个Python函数可以让您开始工作。我使用非常方便的酒瓶库作为我的技能。因此,很容易获得deviceId和consentToken对象的值。这些被Alexa包含在发送给您的JSON请求中。它们是构建对Amazon address API端点的请求所必需的:

代码语言:javascript
复制
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())

如果调用成功,该函数将返回类似的内容:

代码语言:javascript
复制
{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}

您可以使用地势将此地址转换为坐标。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36986139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档