Come ha sottolineato @Tom, ora è possibile ottenere l'indirizzo del dispositivo nella propria competenza personalizzata. Se stai usando Python per creare le tue abilità, è abbastanza semplice implementare la nuova API. Ho scritto un post sul blog dettagliato su di esso here. Descrive anche come ottenere le coordinate corrispondenti per l'indirizzo recuperato, quindi potrebbe essere utile per te. In breve, ecco una funzione Python per iniziare. Uso la molto pratica libreria Flask-Ask per le mie capacità. Pertanto, è facile ottenere il valore degli oggetti DeviceId e AllowToken. Questi sono inclusi da Alexa nella richiesta JSON inviata alla tua abilità. Essi sono necessari per la costruzione della richiesta per l'Amazzonia indirizzo API endpoint:
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())
La funzione restituirà qualcosa di simile su una chiamata di successo:
{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}
È possibile utilizzare geopy per convertire questo indirizzo per le coordinate .
come si aggiunge la libreria flask_ask? Ho provato il codice di cui sopra ma ora fa fallire la mia funzione lambda quando tenta di importare i moduli flask_ask all'inizio – thefragileomen
'pipe install flask-ask' dovrebbe essere sufficiente. Dovresti controllare la documentazione: https://flask-ask.readthedocs.io – mc51