ボットを Alexa に接続する
この記事の対象: SDK v4
Alexa カスタム スキルを通じて人々と通信するようにボットを構成できます。 この記事では、Alexa 開発者コンソールを使用して Alexa スキルを作成し、Azure でボットを Alexa スキルに接続し、Alexa でボットをテストする方法について説明します。
前提条件
- Azure サブスクリプション。 まだお持ちでない場合は、開始する前に無料アカウントを作成してください。
- Azure に公開されていて、Alexa に接続するボット。
- Amazon アカウント。
重要
ボットでは、Bot Framework SDK バージョン 4.8 以降を使用する必要があります。 既存のボットがある場合は、SDK バージョンを更新してボットを再公開する必要がある場合があります。
Alexa スキルを作成する
[Alexa 開発者コンソール] にサインインし、[スキルの作成] を選択します。
次のページで、次の操作を行います。
- 新規スキルの名前を入力します。
- [スキルに追加するモデルの選択] が [カスタム] に設定されていることを確認します。
- [スキルのバックエンド リソースをホストする方法を選択する] が [独自のプロビジョニング] に設定されていることを確認します。
- [スキルの作成] を選択します。
次のページで、次の操作を行います。
- [テンプレートの選択] が [最初から開始] に設定されていることを確認します
- [選択] を選択します。
スキル ダッシュボードの [相互作用モデル] で、[JSON エディター] を選択します。
JSON エディターで次の手順を実行します。
既存の内容を、次の 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>" } } ] } ] } } }
invocationName
の場合、<your-skill-invocation-name> を、ユーザーが Alexa でスキルを呼び出すために使用する名前に変更します。 たとえば、スキルの呼び出し名が "adapter helper" である場合、ユーザーは "Alexa, launch adapter helper (Alexa、アダプター ヘルパーを起動して)" と言ってスキルを起動できます。types
のvalues
配列で、<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 アダプターの詳細を教えて)" となります。
[モデルの保存] を選択し、[モデルのビルド] を選択します。 これにより、Alexa でのスキルの構成が更新されます。
Azure のボットを構成します。
この手順を完了するには、Alexa スキルID が必要です。 Alexa ポータルの URL から ID を取得するか、Alexa 開発者コンソールに移動して [スキル ID のコピー] を選択して ID を取得します。 Alexa のスキル ID は、"amzn1.ask.skill.<some-guid>" のような値にする必要があります。
- Azure Portalを開きます。
- ボットの [Azure Bot リソース] ブレードを開きます。
- [チャネル] を開き、[Alexa] を選択します。
- [Alexa チャネルの構成] に、前のステップでコピーした情報を入力します。
- [スキル ID を入力] に、Alexa 開発者コンソールからコピーした Alexa スキル ID を入力します。
- 適用を選択します。
- Azure で生成された Alexa サービス エンドポイント URI をコピーします。
Alexa ボットの登録を更新する
Alexa 開発者コンソールにサインインします。
スキルの構成ページを見つけて開きます。
[エンドポイント] を選択します。
[サービス エンドポイントの種類] で、[HTTPS] を選択します。
[デフォルトのリージョン] の場合:
- Azure portal からコピーした Alexa サービス エンドポイント URI を入力します。
- ドロップダウンで、[My development endpoint is a sub-domain of a domain that has a wildcard certificate from a certificate authority] (私の開発エンドポイントは、証明機関が発行したワイルドカード証明書を持つドメインのサブドメインである)を選択します。
[エンドポイントの保存] を選択します。
スキルをテストして公開する
Alexaデバイスを所有している場合は、スキルを公開する前にテストすることができます。
プラットフォームでスキルをテストして公開する方法については、カスタム音声モデルスキルの Alexa Skills Kit 開発者向けドキュメントを参照してください。
追加情報
Alexaスキルの詳細については、Amazon 開発者向けドキュメントを参照してください。
Alexa でのユーザー認証
Alexa のユーザー認証は、Alexa スキルでアカウント リンクを設定して使用することで行われます。 詳細については、「Alexaスキルのアカウントリンクについて」を参照してください。 ユーザーがスキルを有効にしたときにアカウント リンクを要求することも、会話フローの一部として要求することもできます。
会話の一部としてユーザー認証を追加する場合:
送信アクティビティにサインイン カードをアタッチします。 これは、Alexaアプリを使用してサインインするようにユーザーに求めるAlexa LinkAccount カードに変換されます。
ユーザーがアカウントをアプリに正常にリンクすると、チャネル データ内の後続の要求でトークンを使用できるようになります。
次のステップ
- ボットの構築に関する詳細については、「ボットのしくみ」および「Bot Framework SDK を使用したボットの作成に関するクイック スタート」を参照してください。
- ボットのデプロイの詳細については、「チュートリアル: Azure でボットをプロビジョニングする」と「チュートリアル: 基本的なボットを発行する」を参照してください。
- Bot Connector Service でのチャネルサポートに関する詳細については、「ボットをチャネルに接続する」を参照してください。
- Bot Framework スキーマの詳細については、「Bot Framework アクティビティ スキーマ」と「Bot Framework カード スキーマ」に関する説明を参照してください。