我正在尝试为自己的业务创建一个应用程序。我有5家商店,并且我想要alexa应用程序来告诉用户该商店离您最近。 任何帮助,任何方向都会有所帮助。
答案 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
发出一个deviceId
和apiAccessToken
的{{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
的更多信息