Alexaスキルキットのリクエストから私のカスタムスキルまで、ユーザーの所在、理想的には経度/緯度を取得する方法を探しています。また、私は自分のアプリ側のアカウントへのユーザーリンクを持っている必要はありません。Alexaスキルキット(ASK)から場所を取得
これは可能ですか?もしそうなら、どうですか?
Alexaスキルキットのリクエストから私のカスタムスキルまで、ユーザーの所在、理想的には経度/緯度を取得する方法を探しています。また、私は自分のアプリ側のアカウントへのユーザーリンクを持っている必要はありません。Alexaスキルキット(ASK)から場所を取得
これは可能ですか?もしそうなら、どうですか?
this thread on the Amazon Developer forumsによると、現在公開されているAPIを使用してユーザーの場所を取得する方法は(2016年5月現在)存在しません。 UberやDominoなどの唯一のスキルは、Alexaスキルキットでは入手できないAPIを利用しています。しかし、それは「アマゾン@ジェイミー」として、添加することができるという希望はありますが、その議論の中で、この返信を左:投稿用
ちょっとそこ、
感謝を。
これはロードマップに追加されました。フィードバックをお寄せいただきありがとうございます。
ジェイミー
しかしながら、書き込み時に、更なる更新は、このような機能の実装については提供されていません。
Amazonは(2017-04-05)がこの機能を追加しました。新しいDevice Address APIについてはtheir blog postをご覧ください。
この新しいAPIを使用すると、お客様のデバイス設定で指定されているように、デバイスの住所(郵便番号または完全な住所)を取得できます。
これから、ジオコーディングAPI(Google Maps APIの一部など)を使用して、アドレスを位置座標に変換することができます。
@Tomが指摘しているように、カスタムスキルでデバイスアドレスを取得できるようになりました。スキルを作成するためにPythonを使用している場合、新しいAPIを実装するのはかなり簡単です。私はそれについての詳細なブログ投稿を書いたhere。また、検索されたアドレスの対応する座標を取得する方法についても説明していますので、役に立つかもしれません。要するに、ここではPythonの機能を使い始めました。私は非常に便利なFlask-Askライブラリを自分のスキルに使用します。したがって、deviceIdオブジェクトとconsentTokenオブジェクトの値を取得するのは簡単です。これらはあなたのスキルに送られたJSON要求にAlexaによって含まれています。彼らはアマゾンアドレス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モジュールをインポートしようとするとラムダ関数が失敗するようになりました – thefragileomen
'pip install flask-ask'で十分でしょう。ドキュメントを確認する必要があります:https://flask-ask.readthedocs.io – mc51