WebRTCスキル向けスマートホームデバッガーを使用する
AlexaスマートホームスキルにAlexa.RTCSessionControllerインターフェースを実装している場合、スマートホームデバッガーを使ってスキルのテストやデバッグができます。RTCSessionController
インターフェースのシナリオ例としては、スキルでスマートホームセキュリティカメラを制御する場合が挙げられます。ユーザーが「アレクサ、玄関のカメラを見せて」と言うと、カメラのビデオフィードがAlexaデバイスに表示されます。
Alexaスキルの開発やテストを行う際、スマートホームデバッガーを使ってWebRTCセッションのログをリアルタイムに確認できます。たとえば次のような項目で、正しい動作を確認したり、問題を検出したりできます。
- 不正なDTLSバージョン
- 無効なSDPアンサー
- ICE候補が無効な場合やICE候補が存在しない場合
- サポートされていないコード
- JSON形式の誤り
ChangeReport、AddOrUpdateReport、DeleteReportの各イベントで問題をデバッグする方法の詳細については、スマートホームデバッガーを使用するを参照してください。
RTCSessionController
イベントのスマートホームデバッガーログには表示されません。前提条件
WebRTCセッション中にスマートホームデバッガーを使用するには、以下が必要です。
- スキルがリアルタイム通信(RTC)可能なデバイスと通信できること。
- スキルがAlexa.RTCSessionControllerインターフェースを実装していること。
- FireTVやEchoデバイス(例:Echo Dot、Echo Plus、Echo Show、Echo Spot)など、スキルのテストに使用できるAlexaデバイスを持っていること。
スマートホームデバッガーにアクセスする
スマートホームデバッガーの使用方法
-
Alexa開発者コンソールを開いて、ログインします。
-
スマートホームデバイスに関連付けられたスマートホームスキルを開きます。
-
テストページを開きます。
-
スキルのテストを有効にします。
-
ページ上部で、デバイスのログ、スマートホームデバッガーを選択します。
-
ページのスマートホームデバッガーセクションで、スマートホームデバッガーをオンに切り替えます。
手順を完了したら、RTCデバイスとの対話によりスキルのテストを開始します。イベント情報がデバイスログに表示されます。
イベントを確認する
スマートホームデバッガーには、Alexaがスキルから受け取るイベントと、Alexa開発者コンソールへのサインインに使用したAmazonアカウントのログが表示されます。デバイスログの各イベントには、Alexaが受信したイベントに関する詳細が記載されたJSONドキュメントが含まれています。
スマートホームデバッガーで問題が発生した場合は、Alexa開発者向け問い合わせ窓口ページから問い合わせてください。
イベントが正常に処理された例
以下は、スマートホームデバッガーに、Alexaが正常に処理できたSessionDisconnected
イベントのログが表示された例です。event
フィールドには、Alexaに送信したイベントのJSONドキュメントが含まれます。
{
"header": {
"namespace": "SkillDebugger",
"name": "CaptureDebuggingInfo",
"messageId": "<メッセージID>"
},
"payload": {
"skillId": "<スキルID>",
"timestamp": "2020-09-29T19:08:14.545Z",
"dialogRequestId": null,
"skillRequestId": null,
"type": "RTCSessionControllerSuccess",
"content": {
"eventType": "SessionDisconnectedResponse",
"event": {}
}
}
}
接続されたセッションで正常に処理されたイベントの例
以下は、スマートホームデバッガーに、Alexaが正常に処理できた接続状態の変更ログが表示された例です。
{
"header": {
"namespace": "SkillDebugger",
"name": "CaptureDebuggingInfo",
"messageId": "<メッセージID>"
},
"payload": {
"skillId": "<スキルID>",
"timestamp": "2020-09-29T19:08:14.545Z",
"dialogRequestId": null,
"skillRequestId": null,
"type": "RTCSessionControllerSuccess",
"content": {
"eventType": "ConnectionStateEvent",
"event": {
"oldState": "DISCONNECTED",
"newState": "CONNECTED"
}
}
}
}
メディアフローで正常に処理されたイベントの例
以下は、スマートホームデバッガーに、AlexaがRTCメディアを正常に処理できた場合のログが表示された例です。state
フィールドは、FLOWING
、NOT_FLOWING
のいずれかになります。mediaType
フィールドは、AUDIO
、DATA
、VIDEO
のいずれかになります。
{
"header": {
"namespace": "SkillDebugger",
"name": "CaptureDebuggingInfo",
"messageId": "<メッセージID>"
},
"payload": {
"skillId": "<スキルID>",
"timestamp": "2020-09-29T19:08:14.545Z",
"dialogRequestId": null,
"skillRequestId": null,
"type": "RTCSessionControllerSuccess",
"content": {
"eventType": "MediaFlowOutStateChangeEvent",
"event": {
"state": "FLOWING",
"mediaType": "VIDEO"
}
}
}
}
エラーになったイベントの例
以下は、スマートホームデバッガーに、Alexaが正常に処理できなかったSessionDisconnected
イベントのログが表示された例です。event
フィールドには、Alexaに送信したイベントのJSONドキュメントが含まれます。
{
"header": {
"namespace": "SkillDebugger",
"name": "CaptureDebuggingInfo",
"messageId": "<メッセージID>"
},
"payload": {
"skillId": "<スキルID>",
"timestamp": "2020-09-29T19:08:14.545Z",
"dialogRequestId": null,
"skillRequestId": null,
"type": "RTCSessionControllerFailure",
"content": {
"eventType": "SessionDisconnectedException",
"errorCode": "LAMBDA_GENERAL_ERROR",
"errorMessage": "Lambdaの一般的なエラーメッセージです。",
"event": null
}
}
}
RTCSessionControllerのエラーコード
次の表は、スマートホームデバッガーに表示される可能性のあるRTCSessionController
イベントのエラーコードのリストです。
エラーコード | エラーメッセージ |
---|---|
SETUP_EVENT_ERROR |
同時リクエストが多すぎます。 |
NO_VIDEO_ERROR |
ビデオの待機中にタイムアウトになったため接続を確立できませんでした。 |
CONNECTION_ERROR |
接続の確立に失敗しました。 |
INTERNAL_ERROR |
接続の確立中に内部エラーが発生しました。 |
関連トピック
- デバイスの状態を表示してスマートホームスキルのテストとデバッグを行う方法
- スマートホームテスト
- スマートホームスキルのテストとデバッグ
- スマートホームスキルの作成手順
- Works with Alexa認定の概要
- スマートホームライブデバッガーツールを使用してカメラのWebRTC統合のテスト、デバッグ、すばやい市場投入を実現する
最終更新日: 2021 年 04 月 06 日