mongamae-nioh / alexa-skill-nearby-ramenshop

Alexaスキル「近くのラーメン屋さん」のソースコード
0 stars 0 forks source link

ユーザから位置情報の利用を承認してもらうための実装 #17

Closed mongamae-nioh closed 3 years ago

mongamae-nioh commented 3 years ago

https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/location-services-for-alexa-skills.html 参照

mongamae-nioh commented 3 years ago

スキルペイロードに地理座標データがない場合があります。これは、context.Geolocationがnullであるかどうかをテストすることで確認できます。開発者コンソールで位置情報サービスを有効にしていると、このデータが不足している場合は、context.Geolocationは次の3つの理由からnullになります。

ケース1: ユーザーのデバイスがAmazon Echoなどの固定デバイスであるか、位置情報をAlexaに送信するように設定されていません。この場合、有効なモバイルデバイスではないため、デバイスの座標はデフォルトで使用できません。

ケース2: ユーザーが、スキルと位置情報を共有するよう設定していません。この場合、AskForPermissionsConsentカードを使用してユーザーに権限を要求して、この問題を解決することもできます。

ケース3: ユーザーのハードウェアで位置情報の共有が無効になっているか、ユーザーがAlexaと位置情報と共有するよう設定していません。たとえば、ユーザーのデバイス(携帯電話など)の位置情報サービスが無効になっている可能性があります。この場合、Alexaとの位置情報共有を有効にするようにユーザーに依頼することもできます。

mongamae-nioh commented 3 years ago

https://developer.amazon.com/ja-JP/docs/alexa/alexa-skills-kit-sdk-for-python/call-alexa-service-apis.html

        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
mongamae-nioh commented 3 years ago

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