Closed mongamae-nioh closed 3 years ago
スキルペイロードに地理座標データがない場合があります。これは、context.Geolocationがnullであるかどうかをテストすることで確認できます。開発者コンソールで位置情報サービスを有効にしていると、このデータが不足している場合は、context.Geolocationは次の3つの理由からnullになります。
ケース1: ユーザーのデバイスがAmazon Echoなどの固定デバイスであるか、位置情報をAlexaに送信するように設定されていません。この場合、有効なモバイルデバイスではないため、デバイスの座標はデフォルトで使用できません。
ケース2: ユーザーが、スキルと位置情報を共有するよう設定していません。この場合、AskForPermissionsConsentカードを使用してユーザーに権限を要求して、この問題を解決することもできます。
ケース3: ユーザーのハードウェアで位置情報の共有が無効になっているか、ユーザーがAlexaと位置情報と共有するよう設定していません。たとえば、ユーザーのデバイス(携帯電話など)の位置情報サービスが無効になっている可能性があります。この場合、Alexaとの位置情報共有を有効にするようにユーザーに依頼することもできます。
if not (req_envelope.context.system.user.permissions and
req_envelope.context.system.user.permissions.consent_token):
response_builder.speak(NOTIFY_MISSING_PERMISSIONS)
response_builder.set_card(
AskForPermissionsConsentCard(permissions=permissions))
return response_builder.response
adee8021bf18c69b3fb922af37af6380e307a837 でクローズ。
許可を依頼するカードを表示する方法が全然わからなかった… 以下が参考になった。
概要 https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/location-services-for-alexa-skills.html
AskForPermissionsConsentCardのドキュメント https://alexa-skills-kit-python-sdk.readthedocs.io/en/latest/models/ask_sdk_model.ui.html#ask_sdk_model.ui.card.Card
Python SDKの実装方法 https://developer.amazon.com/ja-JP/docs/alexa/alexa-skills-kit-sdk-for-python/call-alexa-service-apis.html
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/location-services-for-alexa-skills.html 参照