Alexa Smart Properties in Senior Livingのイベントを受信する


Alexa Smart Properties in Senior Livingのイベントを受信する

組織とAlexa Smart Propertiesを統合する際、Alexaのイベントのサブスクリプションを行うことができます。これらのイベントを使って、アラームの起動や操作の再試行といったアクションを実行することができます。たとえば、スキルタイムアウトイベントのアラームを作成して、スキルを稼動させているウェブサービスが正常に実行されているかどうかを確認できます。

イベントはAmazon Simple Notification Service(SNS)にパブリッシュされます。イベントのパブリッシュをセットアップする手順については、イベントのセットアップ手順を参照してください。

イベント

現在は、以下の3つのイベントを使用できます。イベントスキーマの詳細については、イベントスキーマを参照してください。

エンタープライズサブスクリプション有効化

このイベントは、施設でユニットを作成した後に生成されます。Alexa Smart PropertiesコンソールまたはREST APIを使ってユニットを作成した場合、そこで返される成功メッセージは、ユニットが作成されたことを意味するだけです。Alexa Smart Propertiesがそのサブスクリプションを初期化するまで、そのユニットでの操作(子ユニットの作成、スキルの有効化、デバイスの関連付けなど)はブロックされます。

このイベントは、ユニットのサブスクリプションが初期化されたときにトリガーされます。このイベントを受信すると、Alexa Smart Propertiesが推奨する期間を待つことなく、次の操作(子ユニットの作成など)を実行できることがわかります。

このイベントは、サブスクリプションの有効化から10秒以内に配信されます。

オートメーション実行完了

このイベントは、オートメーションテンプレートで指定したアクションが成功または失敗したときに生成されます。オートメーションのエンドポイントIDまたはユニットIDが正しくない場合、内部サーバーエラーが発生した場合などに、アクションは失敗します。

Alexa Smart Propertiesは、オートメーションアクションが実行されても(たとえば、ボリュームを5にリセットしようとしても)、何らかの理由でアクションが完了しない場合(たとえば、ボリュームは10のまま)、オートメーションエラーイベントを配信します。これは、ネットワーク接続に問題がある場合に発生する可能性があります。たとえば、オートメーションREST APIを使って設定を更新した場合でも、デバイス上で設定が更新されていない可能性があります。

このイベントは、オートメーション実行完了から10秒以内に配信されます。

スキル対話エラー

このイベントは、ユーザーがスキルと対話しようとしたときに、スキルがタイムアウトした(そのためAlexaが応答しなかった)場合、またはスキルが無効な応答を返した場合に生成されます。無効な応答は、以下の理由で発生する可能性があります。

  • スキルのエンドポイントが存在しない
  • スキルが例外を返した
  • スキルのエンドポイントに無効なSSMLが含まれていた

このイベントにより、スキル内のログ記録では捕捉できないエラーについて、情報を得ることができます。スキル対話エラーイベントは、エラー発生から10分以内に配信されます。

前提条件

Alexa Smart Propertiesのイベントをセットアップするには、以下のアカウントを持っている必要があります。

  • Amazon開発者アカウント – アカウントをお持ちでない場合は、Amazon.co.jpでアカウントを作成した後にdeveloper.amazon.comにログインしてください。
  • AWSアカウント – Alexaがイベントをエンドポイントに送信するように設定する必要がありますが、現在利用可能なエンドポイントはAmazon SNSです。Amazon SNSをセットアップするには、AWSアカウントが必要です。

イベントのセットアップ手順

Alexa Smart Propertiesのイベントをセットアップするには、以下の手順に従います。

ステップ1: Amazon SNSトピックを作成する

Alexaがイベントを送信できるように設定するには、Alexaがイベントを送信する先のAmazon SNSトピックをセットアップする必要があります。SNSトピックを作成したら、AlexaがそのSNSトピックにイベントをパブリッシュする権限を持つように、AWS Identity and Access Management(IAM)アクセスポリシーをSNSトピックに追加します。

Amazon SNSトピックを作成し、このトピックに権限を追加するには

  1. AWSアカウントにログインして、Amazon SNSコンソールに移動します。
  2. 左側のトピックをクリックします。右上のトピックの作成をクリックします。
  3. トピック名を入力したら、トピックの作成をクリックします。
  4. 詳細セクションで、トピックのAmazonリソースネーム(ARN)を確認し、メモしておきます。
  5. アクセスポリシータブをクリックします。
  6. 右上の編集をクリックします。
  7. アクセスポリシーを展開して、以下のポリシーを既存ポリシーに組み込みます。
    {
     "Sid": "grant-alexa-event-sns-publish",
     "Effect": "Allow",
     "Principal": {
        "AWS": [
           "arn:aws:iam::006860194444:role/AlexaEventConsumerSnsIamRole"
        ]
     },
     "Action": "sns:Publish",
     "Resource": "the-arn-of-the-sns-topic"
    }
    
  8. 下側の変更内容を保存をクリックします。
  9. 以下のインストラクションのいずれかに従って、SNSトピックからイベントを読み取る方法を指定します。

ステップ2: サブスクリプション設定を作成する

ここでは、作成したSNSトピックにイベントを送信するようにAlexaを設定します。この情報は、サブスクリプション設定によって表されます。サブスクリプション設定は、以下の手順でイベントメッセンジャーAPIを使って作成します。

サブスクリプション設定を作成するには

  1. RESTクライアントを使って、サブスクリプション設定を作成する操作を呼び出します。

  2. サブスクリプション設定を作成するの手順に従って、リクエストに以下の情報を挿入します。

    • リクエストのヘッダーに、Authenticationヘッダーのベアラートークンとしてアクセストークンを含めます。
    • リクエストの本文に、ステップ1で作成したSNSトピックのARNを含むdeliveryChannels配列を含めます。

サブスクリプション設定の詳細が有効であれば、Alexaはサブスクリプション設定を作成し、HTTP 201 Createdが返されます。以下の例のように、HTTP応答のLocationヘッダーには、サブスクリプション設定リソースの一意のidが含まれます。

Location: amzn1.alexa.aem.subscription.configuration.123

この情報は、応答本文のidパラメーターにも含まれます。

ステップ3: サブスクリプションを作成する

サブスクリプションは、通知をトリガーするイベントを指定します。以下の手順に従って、イベントメッセンジャーAPIを使用してサブスクリプションを作成します。

サブスクリプションをセットアップするには

  1. RESTクライアントを使ってサブスクリプションを作成する操作を呼び出します。

  2. サブスクリプションを作成するの手順に従って、リクエストに以下の情報を挿入します。

    • リクエストのヘッダーに、Authenticationヘッダーのベアラートークンとしてアクセストークンを含めます。
    • リクエストの本文に、以下の情報を含めます。
      • イベントタイプ。使用可能なイベントタイプについては、イベントスキーマを参照してください。
      • ステップ2で作成したサブスクリプション設定のID。
      • イベントと関連付けるエンティティのリスト。

サブスクリプションの詳細が有効であれば、Alexaはイベントサブスクリプションを作成し、HTTP 201 Createdが返されます。以下の例のように、HTTP応答のLocationヘッダーには、サブスクリプションリソースの一意のidが含まれます。

Location: amzn1.alexa.aem.subscription.123

この情報は、応答本文のidパラメーターにも含まれます。


このページは役に立ちましたか?

最終更新日: 2023 年 03 月 06 日