Как отметил @Tom, теперь вы можете получить адрес устройства в своем обычном режиме. Если вы используете Python для создания своего навыка, довольно легко реализовать новый API. Я написал подробное сообщение в блоге об этом here. Он также описывает, как получить соответствующие координаты для извлеченного адреса, поэтому он может быть вам полезен. Короче говоря, вот функция Python, чтобы вы начали. Я использую очень удобную библиотеку Flask-Ask для своих навыков. Таким образом, легко получить значение объектов deviceId и agreeToken. Они включены Alexa в запрос JSON, посланный на ваше умение. Они необходимы для построения запроса на Amazon адрес API конечной точку:
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())
Функция возвращает что-то вроде этого на успешный вызов:
{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}
Вы можете использовать geopy для преобразования этого адреса в координаты ,
как вы добавляете библиотеку flask_ask? Я пробовал приведенный выше код, но теперь он заставляет мою лямбда-функцию сбой при попытке импортировать модули flask_ask в начале – thefragileomen
'pip install flask-ask' должно быть достаточно. Вы должны проверить документацию: https://flask-ask.readthedocs.io – mc51