(LWA)のアクセストークンを取得する必要があります。デバイスは、このアクセストークンをリクエストのたびにAVSに送信します。ここでは、コードベースのリンク(CBL)について説明します。コードベースのリンクとは、テレビやスマートウォッチといった文字入力が制限される、あるいは文字入力の手段を持たない製品に最適な認可方法です。製品の登録中、ユーザーは英数字の短いコードとURLを受け取ります。ブラウザーにアクセスできる別のデバイスでそのURLにアクセスし、Amazonの認証情報を使ってログインします。受け取ったコードを入力することで、Alexaが使えるデバイスをAmazonアカウントにリンクさせます。リンクが完了すると、製品にスプラッシュ画面が表示され、AVSにアクセスできるようになります。以下の図は、AVSで使用するaccess_tokenとrefresh_tokenを取得するためにAlexaが使えるデバイスとLWAとの間で行われるやり取りを示しています。Service」を選択します。「管理する」をクリックして既存の製品でCBLを有効にするか、または「製品を作成する」をクリックして新しい製品を作成します。「セキュリティプロファイル」タブに移動し、「他のデバイスやプラットフォーム」を選択します。「クライアントID名」を入力し、「IDを生成」をクリックします。後で使用するため、クライアントIDは保存しておきます。デバイス認可をリクエストまず、Alexaが使えるデバイスがPOSTリクエストを行い、LWAからユーザーコードとURLを取得する必要があります。有効なレスポンスが返された場合、ユーザーにuser_codeとverification_uriが表示されます。このAPIは、OAuthのコードベースのリンクの仕様であるデバイス認可リクエストコンポーネントを実装しています。https://api.amazon.com/auth/O2/create/codepairリクエストには以下のパラメーターを含める必要があります。期待値はdevice_codeです。このパラメーターにより、サービスにCBLリクエストであることを伝えます。ステップ1で作成したクライアントIDです。期待値はalexa:allです。製品に付与するパーミッションを指定します。productIDやdeviceSerialNumberといった製品固有の情報を含む追加のJSONデータです。以下は、JSONのサンプルです。製品のデバイスタイプIDです。この情報にアクセスするには、Amazon開発者コンソールに移動します。>」をクリックします。登録された製品の横にある「管理する」をクリックする(または、新しい製品を作成する)と、製品のクライアントIDとクライアントシークレットが表示されたページに移動します。deviceSerialNumberを含むオブジェクトです。製品のこのインスタンスを一意に識別するキーです。シリアルナンバーやMACアドレスなどです。以下は、URLエンコードされる前のscopeオブジェクトのサンプルです。リクエストにAccept-Languageヘッダーを含めると、ユーザーがログインと登録に使用する言語を選択できます。en-US、de-DE、es-ES、en-GB、fr-FR、it-IT、pt-BR、ja-JP、zh-CNサンプルリクエスト以下は、curlで記述したリクエストのサンプルです。https://api.amazon.com/auth/O2/create/codepairレスポンスレスポンスは、OAuth仕様のセクション3.4に従ってフォーマットされます。入力内容が有効な場合、レスポンスは以下のように構成されます。ユーザーに表示されるコードです。ユーザーは登録時にこのコードを入力します。デバイストークンリクエストの実行時に必要なコードです。この値は公開しないようにする必要があります。ユーザーに表示されるURLです。コードの有効期間(秒)です。デバイストークンリクエストを行う間隔(秒)です。製品がデバイス認可リクエストへのレスポンスを受け取ったら、ユーザーに対してuser_codeとverification_uriを表示する必要があります。セットアップと認証に記載されているデザインのガイダンスと画面の例を参照してください。verification_uriに移動すると、ユーザーは、Amazon開発者認証情報でログインして提供されたuser_codeを入力するよう指示されます。コード登録ページは、OAuthの仕様であるユーザーへの指示コンポーネントを実装しています。以下は登録ページのサンプルです。user_codeを入力すると、ユーザーは認証の成功または失敗を示すページにリダイレクトされます。認証に失敗した場合、ページにはその理由が表示されます(すでに認可済みのコード、認識できない、コードなど)。デバイストークンをリクエストユーザーにログインするよう指示したら、製品はaccess_tokenとrefresh_tokenのポーリングを開始します。https://api.amazon.com/auth/O2/tokenリクエストには以下のヘッダーを含める必要があります。application/x-www-form-urlencodedリクエストには以下のパラメーターを含める必要があります。期待値はdevice_codeです。サービスにgrant種別を伝えます。デバイス認可リクエストで返されるコードです。ユーザーに表示されるコードです。ユーザーは登録時にこのコードを入力します。レスポンスユーザーが登録フローを完了したら、以下の構造でレスポンスが返されます。リフレッシュトークン。アクセストークンの有効期間(秒)。登録の完了に時間がかかる(または登録が途中で終了する)場合があります。そのような場合はポーリング中に次のレスポンスが返される可能性があります。authorization_pending、slow_down、invalid_code_pair、invalid_client、unauthorized_client。invalid_code_pairが返された場合は、登録フローをやり直します。リフレッシュトークンを渡して新しいアクセストークンを取得アクセストークンの有効期限が切れた(または間もなく切れる)ときは、リフレッシュトークンを渡して新しいアクセストークンを取得します。POSTリクエストを行い、https://api.amazon.com/auth/O2/tokenに、これらのパラメーターを組み込んで作成したURLを渡します。refresh_token。リフレッシュトークン。レスポンスには以下の値が含まれます。リフレッシュトークン。アクセストークンの有効期限が切れるまでの残り時間(秒)。