aws-lambda - 亚历克斯地理位置
问题描述
我正在尝试在 Alexa 技能中获取地理位置。我已经在 Alexa 控制台中启用了定位服务,并且我已经授权了发送地理位置的技能。
我收到的消息如下:
{
"context": {
"Extensions": {
"available": {}
},
"System": {
"application": {
"applicationId": "..."
},
"device": {
"supportedInterfaces": {},
"deviceId": "..."
},
"apiEndpoint": "https://api.eu.amazonalexa.com",
"user": {
"userId": "...",
"permissions": {
"scopes": {
"alexa::devices:all:geolocation:read": {
"status": "GRANTED"
}
},
"consentToken": "..."
}
},
"apiAccessToken": "...",
"unit": {
"unitId": "..."
}
}
},
"version": "1.0",
"session": {
"application": {
"applicationId": "..."
},
"user": {
"userId": "...",
"permissions": {
"scopes": {
"alexa::devices:all:geolocation:read": {
"status": "GRANTED"
}
},
"consentToken": "..."
}
},
"new": true,
"sessionId": "..."
},
"request": {
"requestId": "...",
"locale": "it-IT",
"intent": {
"name": "MyIntent",
"confirmationStatus": "NONE"
},
"type": "IntentRequest",
"timestamp": "2021-01-28T07:39:53Z"
}
}
如您所见,地理位置是 GRANTED,但此处描述的 Geolocation 字段完全缺失。
解决方案
您对大多数 Echo 设备不可用的地理位置是正确的。固定设备只提供注册地址,不提供地理坐标。
但是,您可以使用“地理编码”服务将大多数地址转换为坐标。例如,谷歌地图有一个地理编码 API。
推荐阅读
- c# - C# - Windows 窗体 - SQLite
- javascript - 复制文本到带有按钮和 JS 的剪贴板?
- django - 获取自定义Manager中没有重复记录的OneToMany关系的“一”端
- python-3.x - Pandas 重置多级索引顺序
- python - Python“未定义变量'口味”pylint
- node.js - 如何在 Firebase Firestore 中使用 arrayUnion() 将对象推送到数组中?
- javascript - PHP数据库搜索结果查询可点击url
- css - 自定义 CSS 与 Kendo UI Grid 相混淆
- java - NotificationCompat.Builder 已弃用怎么办?
- c++ - 如何将值直接加载到 myCircleArry