article

Ben@Amazon avatar image
Ben@Amazon posted

cURLを使用したAlexaスキルのテスト

アプリケーションのテストにEchoデバイスを使用できますが、テストプロセスの自動化やよりわかりやすい形式での情報の取得のため、サービスを直接テストしたい場合があります。

解決策:

これを容易にするには、アプリケーションサービスへのリクエストや応答の受信にCurlと呼ばれるコマンドラインツールを使用できます。Curlをまだインストールしていない場合は、最新のバイナリファイルをhttp://curl.haxx.se/download.htmlからダウンロードできます。Curlは、Echoの場合はHTTPSなど、複数のプロトコルでデータの送受信を行うコマンドラインツールです。

または、サービスシミュレーターを使用してスキルをテストすることもできます。詳細については、こちらを参照してください。

サンプルコード

1.curl -v -k https://example.com/endpoint --data-binary '{
                
2."version":"string",
3."session":{
                
4."new":boolean,
5."sessionId":"string",
6."attributes":{
                
7."string":object
8.},
9."user":{
                
10."userId":"string"
11.}
12.},
13."request":object
14.}
15.}'

コマンドの各パートの説明(注: 実際のリクエストデータの各要素に関する詳細については、アプリケーションサービスインターフェースのドキュメントの「リクエストのフォーマット」セクションを参照してください。

1. curl: curlコマンドを使用してデータをエンドポイントに渡します。

2.-v: 詳細モード、構文やエンドポイントの問題をデバッグするための情報を詳細に出力します。

3.-k: 安全でない証明書の使用を許可します。EchoアプリがOSにインストールされていない自己署名証明書を使っている場合、このオプションは必須です。それ以外の場合は認証エラーになります。

4. https://example.com/endpoint: Echoアプリのエンドポイントです。非標準のポート上のテスト環境を実行している場合、http://example.com/endpoint:8888のように、URL末尾のコロンの後にポートを追加できます

5.--data-binary: エンドポイントの直後に事前に処理されていないデータを渡します。

6. version: 「1.0」など、リクエスターのバージョンを定義する文字列です。

7. session: セッションオブジェクトには、クライアントの視点からのリクエストのコンテキストが含まれます。

a. new: trueまたはfalseで新しいセッションかどうかを示すブール値 b. sessionID: アクティブセッションごとに一意の識別子 c. attributes: アプリケーションが使用するデータとキー値ペアの割り付け d. user: リクエストを行ったユーザーに関する情報を示すオブジェクト

1. userId: Echoと対話しているユーザーの一意のIDです。

8. request: リクエストのその他のデータを含むオブジェクトです。

EchoアプリケーションサービスのHTTPS応答:

サンプルコード

1.{
                
2."version":"string",
3."response":{
                
4."outputSpeech":{
                
5."type":"string",
6."text":"string"
7.},
8."card":{
                
9."type":"string",
10."title":"string",
11."subtitle":"string",
12."content":"string"
13.},
14."shouldEndSession":boolean
15.}
16.}

応答データの説明:

1. version: 上の#6を参照してください。

2. response: アプリケーションサービスからの応答データを含むオブジェクトです。

a. outputSpeech: Echoがユーザーに応答する音声を含みます。

I. type: 出力音声のタイプです。有効なタイプは「PlainText」です。

II. text: ユーザーに実際に言う音声です。

b. card: ユーザーのEchoコンパニオンアプリにレンダリングする内容を含むオブジェクトです。

I. type: レンダリングするカードのタイプ II. title: カードのタイトル III. subtitle: カードのサブタイトル IV. content: カードのコンテンツ

c. shouldEndSession: セッションを終了するかどうかを示すブール値です。

入力のエラー処理がある場合、EchoアプリケーションサービスはHTTP 500エラーを返す必要があります。

alexa skills kit
10 |5000

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