首页 > 解决方案 > 亚历克斯地理位置

问题描述

我正在尝试在 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 字段完全缺失。

标签: aws-lambdaalexaalexa-skill

解决方案


您对大多数 Echo 设备不可用的地理位置是正确的。固定设备只提供注册地址,不提供地理坐标。

https://developer.amazon.com/en-US/docs/alexa/custom-skills/location-services-for-alexa-skills.html#device-address-as-compared-to-geo-coordinates

但是,您可以使用“地理编码”服务将大多数地址转换为坐标。例如,谷歌地图有一个地理编码 API


推荐阅读