article

Ben@Amazon avatar image
Ben@Amazon posted

Alexa: アカウントリンクのデバッグ

Alexaスキルを使用するためにアカウントをリンクしようとして問題が発生した場合、この記事で紹介するトラブルシューティングの手順や解決方法を試してみてください。

アカウントリンクのベストプラクティス、アカウントリンクの実装方法については、ブログ記事「Alexaスキルにアカウントリンクを追加するための10のヒント」を参照してください。

  1. アカウントリンクを、複数のデバイスやブラウザで試してみてください。いずれかでは動作するのに別のデバイスでは動作しない場合、最も考えられるのは、サイトの外部コンテンツの取得元ドメインをホワイトリストに登録できていないという問題です。ドメインは、スキルの「configuration」タブで追加できます。.
  2. ポップアップはサポートされていません。.ポップアップを使用してリンクしようとしている場合、動作しません。
  3. アカウントリンクがAndroid上の別のブラウザウィンドウに移動した場合、iOSで白い画面に移動した場合は、アカウントリンクが呼び出す/使用する外部ドメインがすべてホワイトリストに登録されていることを確認してください。外部呼び出しを行うすべてのドメインについても同様です。oauth.sample.comへの呼び出しを行う場合、単にsample.comをホワイトリストに登録するだけでは不十分です。oauth.sample.comを登録してください。
  4. すべてのデバイスでエラーになる場合は、デスクトップブラウザでデバッガー(firebugまたはchromeの開発者ツールなど)を有効にして試してみてください。これにより、アカウントリンクで送受信されるネットワークリクエストを確認でき、問題のあるパラメーターなどの原因を特定することができます。特に、アカウントリンクプロセスを通して、stateパラメーターが同じであることを確認してください。
  5. インプリシットグラントを使用してリンクされているスキルの場合、機密情報のqueryパラメーター(アカウントリンクのトークンや状態)が#で始まるURLフラグメントとして含まれる必要があります。クエリ文字列に含めることはできません。フォーマットの例: https://pitangui.amazon.com/spa/skill/account-linking-status.html?vendorId=AAAAAAAAAAAAAA#state=xyz∾cess_token=2YotnFZFEjr1zCsicxLpAA&token_type=Bearer
  6. アカウントリンクのURLは、Amazon認定のCA認証局(https://mozillacaprogram.secure.force.com/CA/IncludedCACertificateReport)からの証明書を含む、ポート443上のHTTPSである必要があります
  7. Amazonは、認証情報として、HTTPベーシック認証とリクエスト本文内の認証情報をサポとします。サービスが別の認証方法を使用する場合、アカウントリンクは失敗します。クライアント認証の詳細については、https://tools.ietf.org/html/rfc6749#section-2.3.1を参照してください
  8. 具体的には、認可コードタイプについては、OAuth2の仕様として、アクセストークンはデフォルトでJSONで送信される必要があります。パラメーターがデフォルトで応答内のパラメーター文字列として指定される場合、アカウントリンクは失敗します。
    1. 特に、Githubが失敗するのはこの理由からです。残念ながら、現時点では、なんらかの中継APIゲートウェイを使用せずにGithubを使ったアカウントリンクを行うことは不可能です。
  9. アクセストークンのTTLは5分未満にする必要があります。
    1. Google限定: Googleのoauthアーキテクチャでは、refresh_tokenは初回のユーザー認可でしか提供されません。同じアカウントで何度も認可を行う場合(テスト中など)、そのアカウントはrefresh_tokenを返さないため、サービスがトークンをリクエストしても何も返されません。Googleからのクエリ実行時にaccess_type=offlineに設定していなかった(つまり、リフレッシュトークンがリクエストされない)場合にも、同じ問題が発生します。リフレッシュトークンを使用するアカウントで問題を修正するには、https://www.google.com/settings/u/1/securityに移動し、アプリからのアクセスを無効にしてください。すると、次回認証時に初めての認証として処理されるため、スキルは適切にリフレッシュされるようになります
  10. アカウントリンクを行うサービスへのアクセス権がない場合は、この時点でアクセス権を取得してログを取得できるようにしておくことをお勧めします。中継としてAWS APIゲートウェイをセットアップする方法についてhttps://developer.amazon.com/blogs/post/TxQN2C04S97C0J/how-to-set-up-amazon-api-gateway-as-a-proxy-to-debug-account-linkingを参照されることをお勧めします
  11. これらのデバッグ手順を実施したあとも「アカウントリンクエラー」が発生する場合は、のちほどもう一度試すか、以下の情報を添えてお問い合わせください。
  • スキルID:
  • リンクしようとしている地域: (EUまたはNA):
  • デバイス/プラットフォームの種類(Android/iOS/ブラウザ):
  • Alexaアプリのバージョン(「設定」 -> 「バージョン情報」):
  • スクリーンショット/問題の説明(空白ページなのか、「リンクできません」ページが表示されるのか、画面上のボタンが機能しないのか):
  • スキルのリンクを試行して失敗した正確な日時(UTCまたはタイムゾーンを明記)、

開発者ポータルページでスキルを設定した日時:

  • 認可Url:
  • ホワイトリストに登録したドメイン:
  • アカウントリンクのタイプ(インプリシットグラントまたは認可コードグラント):

キーワード: alexa, スキル, アカウントリンク, ホワイトリスト, デバッグ

alexa skills kit
10 |5000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Article

Contributors

Ben@Amazon contributed to this article