ボットを Alexa に接続する

この記事の対象: SDK v4

Alexa カスタム スキルを通じて人々と通信するようにボットを構成できます。 この記事では、Alexa 開発者コンソールを使用して Alexa スキルを作成し、Azure でボットを Alexa スキルに接続し、Alexa でボットをテストする方法について説明します。

前提条件

  • Azure サブスクリプション。 まだお持ちでない場合は、開始する前に無料アカウントを作成してください。
  • Azure に公開されていて、Alexa に接続するボット。
  • Amazon アカウント。

重要

ボットでは、Bot Framework SDK バージョン 4.8 以降を使用する必要があります。 既存のボットがある場合は、SDK バージョンを更新してボットを再公開する必要がある場合があります。

Alexa スキルを作成する

  1. [Alexa 開発者コンソール] にサインインし、[スキルの作成] を選択します。

  2. 次のページで、次の操作を行います。

    1. 新規スキルの名前を入力します。
    2. [スキルに追加するモデルの選択][カスタム] に設定されていることを確認します。
    3. [スキルのバックエンド リソースをホストする方法を選択する][独自のプロビジョニング] に設定されていることを確認します。
    4. [スキルの作成] を選択します。

    Choose model and hosting

  3. 次のページで、次の操作を行います。

    1. [テンプレートの選択][最初から開始] に設定されていることを確認します
    2. [選択] を選択します。

    Choose a template

  4. スキル ダッシュボードの [相互作用モデル] で、[JSON エディター] を選択します。

  5. JSON エディターで次の手順を実行します。

    1. 既存の内容を、次の JSON コードに置き換えます。

      {
          "interactionModel": {
              "languageModel": {
                  "invocationName": "<your-skill-invocation-name>",
                  "intents": [
                      {
                          "name": "GetUserIntent",
                          "slots": [
                              {
                                  "name": "phrase",
                                  "type": "phrase"
                              }
                          ],
                          "samples": [
                              "{phrase}"
                          ]
                      },
                      {
                          "name": "AMAZON.StopIntent",
                          "samples": []
                      }
                  ],
                  "types": [
                      {
                          "name": "phrase",
                          "values": [
                              {
                                  "name": {
                                      "value": "<example-phrase>"
                                  }
                              },
                              {
                                  "name": {
                                      "value": "<example-phrase>"
                                  }
                              },
                              {
                                  "name": {
                                      "value": "<example-phrase>"
                                  }
                              }
                          ]
                      }
                  ]
              }
          }
      }
      
    2. invocationName の場合、<your-skill-invocation-name> を、ユーザーが Alexa でスキルを呼び出すために使用する名前に変更します。 たとえば、スキルの呼び出し名が "adapter helper" である場合、ユーザーは "Alexa, launch adapter helper (Alexa、アダプター ヘルパーを起動して)" と言ってスキルを起動できます。

    3. typesvalues 配列で、<example-phrase> の 3 つのインスタンスを、ユーザーがスキルをトリガーするために言うことができるフレーズに置き換えます。 たとえば、ユーザーが "Alexa, ask adapter helper to give me details of the alexa adapter (Alexa、アダプター ヘルパーに Alexa アダプターの詳細を提供するように頼んで)" と言う場合、一つのフレーズ例として "give me details of the alexa adapter (Alexa アダプターの詳細を教えて)" となります。

  6. [モデルの保存] を選択し、[モデルのビルド] を選択します。 これにより、Alexa でのスキルの構成が更新されます。

Azure のボットを構成します。

この手順を完了するには、Alexa スキルID が必要です。 Alexa ポータルの URL から ID を取得するか、Alexa 開発者コンソールに移動して [スキル ID のコピー] を選択して ID を取得します。 Alexa のスキル ID は、"amzn1.ask.skill.<some-guid>" のような値にする必要があります。

  1. Azure Portalを開きます。
  2. ボットの [Azure Bot リソース] ブレードを開きます。
  3. [チャネル] を開き、[Alexa] を選択します。
  4. [Alexa チャネルの構成] に、前のステップでコピーした情報を入力します。
    1. [スキル ID を入力] に、Alexa 開発者コンソールからコピーした Alexa スキル ID を入力します。
    2. 適用を選択します。
    3. Azure で生成された Alexa サービス エンドポイント URI をコピーします。

Alexa ボットの登録を更新する

  1. Alexa 開発者コンソールにサインインします。

  2. スキルの構成ページを見つけて開きます。

  3. [エンドポイント] を選択します。

  4. [サービス エンドポイントの種類] で、[HTTPS] を選択します。

  5. [デフォルトのリージョン] の場合:

    1. Azure portal からコピーした Alexa サービス エンドポイント URI を入力します。
    2. ドロップダウンで、[My development endpoint is a sub-domain of a domain that has a wildcard certificate from a certificate authority] (私の開発エンドポイントは、証明機関が発行したワイルドカード証明書を持つドメインのサブドメインである)を選択します。

    Set service endpoint and endpoint type

  6. [エンドポイントの保存] を選択します。

スキルをテストして公開する

Alexaデバイスを所有している場合は、スキルを公開する前にテストすることができます。

プラットフォームでスキルをテストして公開する方法については、カスタム音声モデルスキルの Alexa Skills Kit 開発者向けドキュメントを参照してください。

追加情報

Alexaスキルの詳細については、Amazon 開発者向けドキュメントを参照してください。

Alexa でのユーザー認証

Alexa のユーザー認証は、Alexa スキルでアカウント リンクを設定して使用することで行われます。 詳細については、「Alexaスキルのアカウントリンクについて」を参照してください。 ユーザーがスキルを有効にしたときにアカウント リンクを要求することも、会話フローの一部として要求することもできます。

会話の一部としてユーザー認証を追加する場合:

  1. 送信アクティビティにサインイン カードをアタッチします。 これは、Alexaアプリを使用してサインインするようにユーザーに求めるAlexa LinkAccount カードに変換されます。

  2. ユーザーがアカウントをアプリに正常にリンクすると、チャネル データ内の後続の要求でトークンを使用できるようになります。

次のステップ