

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS End User Messaging Social のメッセージとイベントの送信先
<a name="managing-event-destinations"></a>

イベント送信先は、WhatsApp イベントが送信される Amazon SNS トピックまたは Amazon Connect インスタンスです。イベント発行を有効にすると、すべての送受信イベントがメッセージとイベントの宛先に送信されます。イベントを使用して、アウトバウンドメッセージとお客様から受信するコミュニケーションのステータスを、モニタリング、追跡、分析します。

各 WhatsApp Business Account (WABA) には、1 つのイベント送信先を設定できます。WABA に関連付けられているすべてのリソースからのすべてのイベントは、そのイベント送信先に記録されます。たとえば、3 つの電話番号が関連付けられている WABA があり、それらの電話番号からのすべてのイベントが 1 つのイベント送信先に記録されます。

**Topics**
+ [AWS End User Messaging Social にメッセージとイベントの送信先を追加する](managing-event-destinations-add.md)
+ [AWS End User Messaging Social のメッセージとイベント形式](managing-event-destination-dlrs.md)
+ [WhatsApp メッセージのステータス](managing-event-destinations-status.md)

# AWS End User Messaging Social にメッセージとイベントの送信先を追加する
<a name="managing-event-destinations-add"></a>

メッセージとイベントの発行を有効にすると、WhatsApp Business Account (WABA) によって生成されたすべてのイベントが Amazon SNS トピックに送信されます。これには、WABA に関連付けられた各電話番号のイベントが含まれます。WABA には、1 つの Amazon SNS トピックを関連付けることができます。

## 前提条件
<a name="managing-event-destinations-add_prerequisite"></a>

開始する前に、Amazon SNS トピックまたは Amazon Connect インスタンスをメッセージとイベントの宛先として使用するには、次の前提条件を満たす必要があります。

**Amazon SNS トピック**
+ Amazon SNS トピック[が作成され](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)、[アクセス許可](#managing-event-destinations-sns-policies)が追加されました。
**注記**  
Amazon SNS FIFO トピックはサポートされていません。
+ **(オプション)** AWS KMS キーを使用して暗号化された Amazon SNS トピックを使用するには、[既存のキーポリシー](#managing-event-destinations-topic-policies)に AWS End User Messaging Social アクセス許可を付与する必要があります。

**Amazon Connect インスタンス**
+ Amazon Connect インスタンス[が作成され](https://docs.aws.amazon.com/connect/latest/adminguide/tutorial1-set-up-your-instance.html)、[アクセス許可](#managing-event-destinations-amazon-connect-policies)が追加されました。

## メッセージとイベントの宛先を追加する
<a name="managing-event-destinations-add_steps"></a>

1. [https://console.aws.amazon.com/social-messaging/](https://console.aws.amazon.com/social-messaging/) で AWS エンドユーザーメッセージングソーシャルコンソールを開きます。

1. **ビジネスアカウント**を選択し、WABA を選択します。

1. **[イベント送信先]** タブで **[送信先の編集]** を選択します。

1. イベント送信先を有効にするには、**有効化** を選択します。

1. **送信先タイプ**でAmazon SNSまたは Amazon Connect を選択します。

   1. イベントを Amazon SNS 送信先に送信するには、トピック ARN に既存の**トピック ARN **を入力します。IAM ポリシーの例は [Amazon SNS トピックの IAM ポリシー](#managing-event-destinations-sns-policies) を参照してください。

   1. Amazon Connect の場合

      1. **Connect インスタンス**では、ドロップダウンからインスタンスを選択します。

      1. **[双方向チャネルの役割]** では、次のいずれかを選択します。

         1. **既存の IAM ロールを選択する** – 既存の IAM ロールドロップダウンから**既存の IAM **ポリシーを選択します。IAM ポリシーの例は [Amazon Connect の IAM ポリシー](#managing-event-destinations-amazon-connect-policies) を参照してください。

         1. **IAM ロール ARN** を入力 – 既存の IAM **ロール Arn を使用する に IAM ポリシーの ARN **を入力します。IAM ポリシーの例は [Amazon Connect の IAM ポリシー](#managing-event-destinations-amazon-connect-policies) を参照してください。

1. **[Save changes]** (変更の保存) をクリックします。

## 暗号化された Amazon SNS トピックポリシー
<a name="managing-event-destinations-topic-policies"></a>

 AWS KMS キーを使用して暗号化された Amazon SNS トピックを使用して、セキュリティを強化できます。このようなセキュリティの強化は、プライベートなデータや機密性の高いデータを扱うアプリケーションに有効です。 AWS KMS キーを使用した Amazon SNS トピックの暗号化の詳細については、*「Amazon Simple Notification Service デベロッパーガイド*」の「 [AWS サービスからのイベントソースと暗号化されたトピック間の互換性](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#compatibility-with-aws-services)を有効にする」を参照してください。

**注記**  
Amazon SNS FIFO トピックはサポートされていません。

このステートメント例では、「オプション」、「推奨」、`SourceAccount`および`SourceArn`「条件」を使用して、混乱した代理問題を回避し、 AWS エンドユーザーメッセージングソーシャル所有者アカウントのみがアクセスできます。混乱した代理問題の詳細については、「*[IAM ユーザーガイド](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html)*」の「[混乱した代理問題](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html)」を参照してください。

使用するキーは*対称*である必要があります。暗号化された Amazon SNS トピックは非対称 AWS KMS キーをサポートしていません。

End AWS User Messaging Social がキーを使用できるようにするには、キーポリシーを変更する必要があります。「 *AWS Key Management Service デベロッパーガイド*[」の「キーポリシーの変更](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)」の指示に従って、既存のキーポリシーに次のアクセス許可を追加します。

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "social-messaging.amazonaws.com"
    },
    "Action": [
        "kms:GenerateDataKey*",
        "kms:Decrypt"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{ACCOUNT_ID}"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:{PARTITION}:social-messaging:{REGION}:{ACCOUNT_ID}:*"
        }
     }
}
```

## Amazon SNS トピックの IAM ポリシー
<a name="managing-event-destinations-sns-policies"></a>

既存の IAM ロールを使用するか、新しいロールを作成するには、次のポリシーをそのロールにアタッチして、 AWS エンドユーザーメッセージングソーシャルがそのロールを引き受けられるようにします。ロールの信頼関係を変更する方法については、「[https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html)」の「[ロールの修正](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_manage.html)」を参照してください。

以下に示すのは、IAM ロールの**アクセス許可ポリシー**です。アクセス許可ポリシーにより、 は Amazon SNS トピックに発行できます。

以下の IAM アクセス許可ポリシーで、次の変更を行います。
+ *\$1PARTITION\$1* を、 AWS エンドユーザーメッセージングソーシャルを使用する AWS パーティションに置き換えます。
+ *\$1REGION\$1* を、 AWS エンドユーザーメッセージングソーシャル AWS リージョン を使用する に置き換えます。
+ *\$1ACCOUNT\$1* を の一意の ID に置き換えます AWS アカウント。
+ *\$1TOPIC\$1NAME\$1* を、メッセージを受信する Amazon SNS トピックに置き換えます。

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": [
          "social-messaging.amazonaws.com"
        ]
       },
    "Action": "sns:Publish",
    "Resource": "arn:{PARTITION}:sns:{REGION}:{ACCOUNT}:{TOPIC_NAME}"
}
```

## Amazon Connect の IAM ポリシー
<a name="managing-event-destinations-amazon-connect-policies"></a>

 AWS End User Messaging Social で既存の IAM ロールを使用する場合、または新しいロールを作成する場合は、 AWS End User Messaging Social がロールを引き受けることができるように、そのロールに次のポリシーをアタッチします。既存のロールの信頼関係を変更する方法については、「[https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html)」の「[ロールの修正](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_manage.html)」を参照してください。このロールは、イベントの送信と AWS End User Messaging Social から Amazon Connect への電話番号のインポートの両方に使用されます。

IAM ポリシーを新しく作成するには、次の操作を行います。

1. 「IAM ユーザーガイド」の「[JSON エディタを使用したポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor)」の指示に従って、新しい**アクセス許可ポリシー**を作成します。

   1. ステップ 5 では、IAM ロールの**アクセス許可ポリシー**を使用して、 が Amazon Connect に発行できるようにします。

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "AllowOperationsForEventDelivery",
                 "Effect": "Allow",
                 "Action": [
                     "connect:SendIntegrationEvent"
                 ],
                 "Resource": "*"
             },
             {
                 "Sid": "AllowOperationsForPhoneNumberImport",
                 "Effect": "Allow",
                 "Action": [
                     "connect:ImportPhoneNumber",
                     "social-messaging:GetLinkedWhatsAppBusinessAccountPhoneNumber",
                     "social-messaging:TagResource"
                 ],
                 "Resource": "*"
             }
         ]
     }
     ```

------

1. 「IAM ユーザーガイド」の「[カスタム信頼ポリシーを使用したロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)」の指示に従って、新しい**信頼ポリシー**を作成します。

   1. ステップ 4 では、IAM ロールの**信頼ポリシー**を使用します。

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [
                          "social-messaging.amazonaws.com"
                      ]
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. ステップ 10 で、前のステップで作成した**アクセス許可ポリシー**を追加します。

## 次の手順
<a name="managing-event-destinations_next_steps"></a>

Amazon SNS トピックを設定したら、トピックにエンドポイントをサブスクライブする必要があります。エンドポイントは、関連付けられたトピックに発行されたメッセージを受信し始めます。トピックへのサブスクライブの詳細については、[Amazon SNS デベロッパーガイド」の「Amazon SNS トピックへのサブスクライブ](https://docs.aws.amazon.com//sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html)」を参照してください。 *Amazon SNS *

# AWS End User Messaging Social のメッセージとイベント形式
<a name="managing-event-destination-dlrs"></a>

イベントの JSON オブジェクトには、 AWS イベントヘッダーと WhatsApp JSON ペイロードが含まれます。JSON WhatsApp 通知ペイロードと値のリストについては、WhatsApp Business Platform Cloud API [リファレンスの「Webhooks Notification Payload](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components) Reference」と[「Message Status](https://developers.facebook.com/docs/whatsapp/conversation-types#message-status)」を参照してください。 *WhatsApp *

## AWS エンドユーザーメッセージングソーシャルイベントヘッダー
<a name="managing-event-destination-dlrs_body"></a>

イベントの JSON オブジェクトには、 AWS イベントヘッダーと WhatsApp JSON が含まれます。ヘッダーには、WhatsApp Business Account (WABA) の AWS 識別子と ARNs と電話番号が含まれます。

```
{
  "context": {
    "MetaWabaIds": [
      {
        "wabaId": "1234567890abcde",
        "arn": "arn:aws:social-messaging:us-east-1:123456789012:waba/fb2594b8a7974770b128a409e2example"
      }
    ],
    "MetaPhoneNumberIds": [
      {
        "metaPhoneNumberId": "abcde1234567890",
        "arn": "arn:aws:social-messaging:us-east-1:123456789012:phone-number-id/976c72a700aac43eaf573ae050example"
      }
    ]
  },
  "whatsAppWebhookEntry": "{\"...JSON STRING....",
  "aws_account_id": "123456789012",
  "message_timestamp": "2025-01-08T23:30:43.271279391Z",
  "messageId": "6d69f07a-c317-4278-9d5c-6a84078419ec"
}
//Decoding the contents of whatsAppWebhookEntry
{
//WhatsApp notification payload
}
```

前述の例のイベント:
+ *1234567890abcde* は Meta の WABA ID です。
+ *abcde1234567890* は Meta の電話番号 ID です。
+ *fb2594b8a7974770b128a409e2example* は WhatsApp Business Account (WABA) の ID です。
+ *976c72a700aac43eaf573ae050example* は電話番号の ID です。

## メッセージを受信するための WhatsApp JSON の例
<a name="managing-event-destination-dlrs-example-receive-text"></a>

以下は、WhatsApp からの受信メッセージのイベントレコードを示しています。で WhatsApp から受信した JSON `whatsAppWebhookEntry`は JSON 文字列として受信され、JSON に変換できます。フィールドとその意味のリストについては、[「WhatsApp Business Platform Cloud API リファレンス」の「Webhooks Notification Payload](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components) *Reference WhatsApp*」を参照してください。

```
{
  "context": {
    "MetaWabaIds": [
      {
        "wabaId": "1234567890abcde",
        "arn": "arn:aws:social-messaging:us-east-1:123456789012:waba/fb2594b8a7974770b128a409e2example"
      }
    ],
    "MetaPhoneNumberIds": [
      {
        "metaPhoneNumberId": "abcde1234567890",
        "arn": "arn:aws:social-messaging:us-east-1:123456789012:phone-number-id/976c72a700aac43eaf573ae050example"
      }
    ]
  },
  "whatsAppWebhookEntry": "{\"...JSON STRING....",
  "aws_account_id": "123456789012",
  "message_timestamp": "2025-01-08T23:30:43.271279391Z",
  "messageId": "6d69f07a-c317-4278-9d5c-6a84078419ec"
}
```

[jq](https://jqlang.org/) などのツールを使用して、JSON 文字列を JSON に変換できます。以下は JSON `whatsAppWebhookEntry` 形式の です。

```
{
  "id": "503131219501234",
  "changes": [
    {
      "value": {
        "messaging_product": "whatsapp",
        "metadata": {
          "display_phone_number": "14255550123",
          "phone_number_id": "46271669example"
        },
        "statuses": [
          {
            "id": "wamid.HBgLMTkxNzM5OTI3MzkVAgARGBJBMTM4NDdGRENEREI5Rexample",
            "status": "sent",
            "timestamp": "1736379042",
            "recipient_id": "01234567890",
            "conversation": {
              "id": "62374592e84cb58e52bdaed31example",
              "expiration_timestamp": "1736461020",
              "origin": {
                "type": "utility"
              }
            },
            "pricing": {
              "billable": true,
              "pricing_model": "CBP",
              "category": "utility"
            }
          }
        ]
      },
      "field": "messages"
    }
  ]
}
```

## メディアメッセージを受信するための WhatsApp JSON の例
<a name="managing-event-destination-dlrs-example-receive-media"></a>

受信メディアメッセージのイベントレコードを次に示します。メディアファイルを取得するには、GetWhatsAppMessageMedia API コマンドを使用します。フィールドとその意味のリストについては、[「Webhooks Notification Payload Reference](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components)」を参照してください。

```
{
//AWS End User Messaging Social header
}
//Decoding the contents of whatsAppWebhookEntry
{
  "id": "365731266123456",
  "changes": [
    {
      "value": {
        "messaging_product": "whatsapp",
        "metadata": {
          "display_phone_number": "12065550100",
          "phone_number_id": "321010217760100"
        },
        "contacts": [
          {
            "profile": {
              "name": "Diego"
            },
            "wa_id": "12065550102"
          }
        ],
        "messages": [
          {
            "from": "14255550150",
            "id": "wamid.HBgLMTQyNTY5ODgzMDIVAgASGCBDNzBDRjM5MDU2ODEwMDkwREY4ODBDRDE0RjVGRkexample",
            "timestamp": "1723506230",
            "type": "image",
            "image": {
              "mime_type": "image/jpeg",
              "sha256": "BTD0xlqSZ7l02o+/upusiNStlEZhA/urkvKf143Uqjk=",
              "id": "530339869524171"
            }
          }
        ]
      },
      "field": "messages"
    }
  ]
}
```

# WhatsApp メッセージのステータス
<a name="managing-event-destinations-status"></a>

メッセージを送信すると、メッセージに関するステータスの更新が表示されます。これらの通知を受信するには、イベントログを有効にする必要があります。「」を参照してください[AWS End User Messaging Social のメッセージとイベントの送信先メッセージとイベントの送信先](managing-event-destinations.md)。

## メッセージのステータス
<a name="managing-event-destinations-status_body"></a>

次の表に、考えられるメッセージステータスを示します。


****  

| ステータス名 | 説明 | 
| --- | --- | 
| 承諾済み | メッセージは WhatsApp によって処理のために受け入れられました。 | 
| 削除済み | 顧客はメッセージを削除し、サーバーにダウンロードされた場合はメッセージも削除する必要があります。 | 
| 配信済み | メッセージは正常に顧客に配信されました。 | 
| 失敗 | メッセージの送信に失敗しました。 | 
| メッセージ再試行が枯渇し、メッセージを削除しました。 | 180 分間の再試行期間内にメッセージを WhatsApp に引き渡すことができず、削除されました。 | 
| 読む | 顧客がメッセージを読みました。このステータスは、顧客が読み取り受信を有効にしている場合にのみ送信されます。 | 
| 送信済み | メッセージは送信されましたが、まだ転送中です。 | 
| 警告 | メッセージには、使用できない、または存在しない項目が含まれています。 | 

## その他のリソース
<a name="managing-event-destinations-status_additional_resources"></a>

詳細については、*WhatsApp Business Platform Cloud API リファレンス*」の[「メッセージステータス](https://developers.facebook.com/docs/whatsapp/conversation-types#message-status)」を参照してください。