如何创建Alexa应用来获取用户当前位置并告诉他我最近的办公室?

时间:2018-10-11 22:26:40

标签: alexa alexa-skills-kit

我正在尝试为自己的业务创建一个应用程序。我有5家商店,并且我想要alexa应用程序来告诉用户该商店离您最近。 任何帮助,任何方向都会有所帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用Device Address API来获取技能所需的地址数据。

每个来自Alexa的请求都将在其有效负载中包含一个apiAccessToken。您可以使用此apiAccessToken向Alexa请求有效负载中提到的apiEndpoint发出适当的请求。

简单地拥有apiAccessToken并不意味着您可以访问资源(例如地址)。您必须获得客户的许可才能使用与客户的Alexa设备关联的地址数据。为此,用户必须在Alexa技能的Settings菜单下明确授予对您技能的访问权限,或者您必须向用户发送permission card以获得同意。

在ask-node-sdk v2中,您可以发送这样的权限卡:

return handlerInput.responseBuilder
      .speak(speechOutput)
      .withAskForPermissionsConsentCard(['read::alexa:device:all:address'])
      .getResponse();

其中read::alexa:device:all:address是设备完整地址的权限值。

授予权限后,向GET发出一个deviceIdapiAccessToken的{​​{1}}请求

完整地址的端点为:apiEndpoint

国家/地区和邮政编码:/v1/devices/*deviceId*/settings/address

在ask-node-sdk v2中,您可以获取如下地址信息:

/v1/devices/*deviceId*/settings/address/countryAndPostalCode

注意:来自Alexa的请求也可能在const deviceAddressServiceClient = serviceClientFactory.getDeviceAddressServiceClient(); const address = await deviceAddressServiceClient.getFullAddress(deviceId); consentToken中包含session.user.permissions。不建议使用此属性,而应使用context.System.user.permissions属性。

有关设备地址API here

的更多信息