

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Tujuan pesan dan acara di AWS End User Messaging Social
<a name="managing-event-destinations"></a>

Tujuan acara adalah topik Amazon SNS atau instans Amazon Connect tempat WhatsApp acara dikirim. Saat Anda mengaktifkan penerbitan acara, semua acara kirim dan terima dikirim ke tujuan pesan dan acara. Gunakan peristiwa untuk memantau, melacak, dan menganalisis status pesan keluar dan komunikasi yang masuk dari pelanggan.

Setiap Akun WhatsApp Bisnis (WABA) dapat memiliki satu tujuan acara. Semua peristiwa dari semua sumber daya yang terkait dengan WABA dicatat ke tujuan acara tersebut. Misalnya, Anda dapat memiliki WABA dengan tiga nomor telepon yang terkait dengannya dan semua peristiwa dari nomor telepon tersebut dicatat ke satu tujuan acara.

**Topics**
+ [Menambahkan pesan dan tujuan acara ke AWS End User Messaging Social](managing-event-destinations-add.md)
+ [Format pesan dan acara di AWS End User Messaging Social](managing-event-destination-dlrs.md)
+ [WhatsApp status pesan](managing-event-destinations-status.md)

# Menambahkan pesan dan tujuan acara ke AWS End User Messaging Social
<a name="managing-event-destinations-add"></a>

Saat Anda mengaktifkan penerbitan pesan dan acara, semua peristiwa yang dihasilkan oleh Akun WhatsApp Bisnis (WABA) Anda dikirim ke topik Amazon SNS. Ini termasuk acara untuk setiap nomor telepon yang terkait dengan WABA. WABA Anda dapat memiliki satu topik Amazon SNS yang terkait dengannya. 

## Prasyarat
<a name="managing-event-destinations-add_prerequisite"></a>

Sebelum memulai, prasyarat berikut harus dipenuhi untuk menggunakan topik Amazon SNS atau instans Amazon Connect sebagai tujuan pesan dan acara.

**Topik Amazon SNS**
+ Topik Amazon SNS telah [dibuat](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) dan [izin telah ditambahkan](#managing-event-destinations-sns-policies).
**catatan**  
Topik Amazon SNS FIFO tidak didukung.
+ **(Opsional)** [Untuk menggunakan topik Amazon SNS yang dienkripsi menggunakan AWS KMS kunci, Anda harus memberikan izin Sosial Pesan Pengguna AWS Akhir ke kebijakan kunci yang ada.](#managing-event-destinations-topic-policies) 

**Contoh Amazon Connect**
+ Instans Amazon Connect telah [dibuat](https://docs.aws.amazon.com/connect/latest/adminguide/tutorial1-set-up-your-instance.html) dan [izin](#managing-event-destinations-amazon-connect-policies) telah ditambahkan.

## Menambahkan pesan dan tujuan acara
<a name="managing-event-destinations-add_steps"></a>

1. Buka konsol Sosial Pesan Pengguna AWS Akhir di [https://console.aws.amazon.com/social-messaging/](https://console.aws.amazon.com/social-messaging/).

1. Pilih **akun Bisnis**, lalu pilih WABA.

1. Pada tab **Tujuan acara**, pilih **Edit tujuan**.

1. Untuk mengaktifkan tujuan acara, pilih **Aktifkan**.

1. Untuk **jenis Tujuan**, pilih Amazon SNS atau Amazon Connect

   1. **Untuk mengirim acara Anda ke tujuan Amazon SNS, masukkan topik ARN yang ada di Topik ARN.** Untuk contoh kebijakan IAM, lihat [Kebijakan IAM untuk topik Amazon SNS](#managing-event-destinations-sns-policies).

   1. Untuk Amazon Connect

      1. Untuk **Connect misalnya** pilih instance dari drop-down.

      1. Untuk **peran saluran dua arah**, pilih salah satu:

         1. **Pilih peran IAM yang ada** — Pilih kebijakan IAM yang ada dari drop-down **peran IAM yang ada**. Untuk contoh kebijakan IAM, lihat [Kebijakan IAM untuk Amazon Connect](#managing-event-destinations-amazon-connect-policies).

         1. **Masukkan peran IAM ARN** — Masukkan ARN kebijakan IAM **ke dalam** Gunakan peran IAM yang ada Arn. Untuk contoh kebijakan IAM, lihat [Kebijakan IAM untuk Amazon Connect](#managing-event-destinations-amazon-connect-policies).

1. Pilih **Simpan perubahan**.

## Kebijakan topik Amazon SNS terenkripsi
<a name="managing-event-destinations-topic-policies"></a>

Anda dapat menggunakan topik Amazon SNS yang dienkripsi menggunakan AWS KMS kunci untuk tingkat keamanan tambahan. Keamanan tambahan ini dapat membantu jika aplikasi Anda menangani data pribadi atau sensitif. Untuk informasi selengkapnya tentang mengenkripsi topik Amazon SNS AWS KMS menggunakan kunci, [lihat Mengaktifkan kompatibilitas antara sumber peristiwa AWS dari layanan dan topik terenkripsi di Panduan Pengembang Layanan](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#compatibility-with-aws-services) *Pemberitahuan Sederhana Amazon*.

**catatan**  
Topik Amazon SNS FIFO tidak didukung.

Pernyataan contoh menggunakan, opsional tetapi direkomendasikan, `SourceAccount` dan `SourceArn` kondisi untuk menghindari masalah wakil yang membingungkan dan hanya akun pemilik AWS End User Messaging Social yang memiliki akses. Untuk informasi lebih lanjut tentang masalah wakil yang bingung, lihat [Masalah wakil yang bingung](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html) di *[panduan pengguna IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html)*.

Kunci yang Anda gunakan harus *simetris*. Topik Amazon SNS terenkripsi tidak mendukung kunci asimetris. AWS KMS 

Kebijakan utama harus dimodifikasi agar AWS End User Messaging Social dapat menggunakan kunci tersebut. Ikuti petunjuk dalam [Mengubah kebijakan kunci](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html), di *Panduan AWS Key Management Service Pengembang*, untuk menambahkan izin berikut ke kebijakan kunci yang ada:

```
{
    "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}:*"
        }
     }
}
```

## Kebijakan IAM untuk topik Amazon SNS
<a name="managing-event-destinations-sns-policies"></a>

Untuk menggunakan peran IAM yang ada atau untuk membuat peran baru, lampirkan kebijakan berikut ke peran tersebut sehingga Sosial Pesan Pengguna AWS Akhir dapat menerimanya. Untuk informasi tentang cara mengubah hubungan kepercayaan suatu peran, lihat [Memodifikasi Peran](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_manage.html) dalam panduan [https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html).

Berikut ini adalah **kebijakan izin** untuk peran IAM. Kebijakan izin memungkinkan penerbitan ke topik Amazon SNS.

Dalam kebijakan izin IAM berikut, lakukan perubahan berikut:
+ Ganti *\$1PARTITION\$1* dengan AWS partisi tempat Anda menggunakan AWS End User Messaging Social.
+ Ganti *\$1REGION\$1* dengan Wilayah AWS yang Anda gunakan AWS End User Messaging Social di.
+ Ganti *\$1ACCOUNT\$1* dengan ID unik untuk Anda Akun AWS.
+ Ganti *\$1TOPIC\$1NAME\$1* dengan topik Amazon SNS yang akan menerima pesan.

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

## Kebijakan IAM untuk Amazon Connect
<a name="managing-event-destinations-amazon-connect-policies"></a>

Jika Anda ingin AWS End User Messaging Social menggunakan peran IAM yang ada atau jika Anda membuat peran baru, lampirkan kebijakan berikut ke peran tersebut sehingga Sosial Pesan Pengguna AWS Akhir dapat menerimanya. Untuk informasi tentang cara mengubah hubungan kepercayaan yang ada dari suatu peran, lihat [Memodifikasi Peran](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_manage.html) dalam panduan [https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html). Peran ini digunakan untuk mengirim acara dan mengimpor nomor telepon dari AWS End User Messaging Social ke Amazon Connect.

Untuk membuat kebijakan IAM baru, lakukan hal berikut:

1. Buat **kebijakan izin** baru dengan mengikuti petunjuk dalam [Membuat kebijakan menggunakan editor JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) di Panduan Pengguna IAM.

   1. Pada langkah 5 gunakan **kebijakan izin** untuk peran IAM agar memungkinkan penerbitan ke 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. Buat **kebijakan kepercayaan** baru dengan mengikuti petunjuk dalam [Membuat peran menggunakan kebijakan kepercayaan khusus](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) di Panduan Pengguna IAM.

   1. Pada langkah 4 gunakan **kebijakan kepercayaan** untuk peran IAM.

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

****  

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

------

   1. Pada langkah 10 tambahkan **kebijakan izin** yang Anda buat di langkah sebelumnya.

## Langkah selanjutnya
<a name="managing-event-destinations_next_steps"></a>

Setelah Anda mengatur topik Amazon SNS Anda, Anda harus berlangganan titik akhir ke topik tersebut. Titik akhir akan mulai menerima pesan yang dipublikasikan ke topik terkait. Untuk informasi selengkapnya tentang berlangganan topik, lihat [Berlangganan topik Amazon SNS di Panduan Pengembang](https://docs.aws.amazon.com//sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html) Amazon *SNS*.

# Format pesan dan acara di AWS End User Messaging Social
<a name="managing-event-destination-dlrs"></a>

Objek JSON untuk suatu acara berisi header AWS acara dan payload WhatsApp JSON. Untuk daftar payload dan nilai WhatsApp notifikasi JSON, lihat Referensi Payload [Pemberitahuan Webhook dan [Status Pesan](https://developers.facebook.com/docs/whatsapp/conversation-types#message-status) di Referensi](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components) API Cloud Platform *WhatsApp Bisnis*.

## AWS Header acara Sosial Pesan Pengguna Akhir
<a name="managing-event-destination-dlrs_body"></a>

Objek JSON untuk suatu acara berisi header AWS acara dan WhatsApp JSON. Header berisi AWS pengidentifikasi dan ARNs Akun WhatsApp Bisnis Anda (WABA) dan nomor telepon.

```
{
  "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
}
```

Dalam contoh peristiwa sebelumnya:
+ *1234567890abcde*adalah id WABA dari Meta.
+ *abcde1234567890*adalah id nomor telepon dari Meta.
+ *fb2594b8a7974770b128a409e2example*adalah ID Akun WhatsApp Bisnis (WABA).
+ *976c72a700aac43eaf573ae050example*adalah ID dari nomor telepon.

## Contoh WhatsApp JSON untuk menerima pesan
<a name="managing-event-destination-dlrs-example-receive-text"></a>

Berikut ini menunjukkan catatan peristiwa untuk pesan masuk dari WhatsApp. JSON yang diterima dari WhatsApp dalam `whatsAppWebhookEntry` diterima sebagai string JSON dan dapat dikonversi ke JSON. Untuk daftar bidang dan artinya, lihat Referensi [Payload Pemberitahuan Webhook di Referensi](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components) API *Cloud Platform WhatsApp Bisnis*.

```
{
  "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"
}
```

Anda dapat menggunakan alat, seperti [jq](https://jqlang.org/), untuk mengonversi string JSON ke JSON. Berikut ini adalah `whatsAppWebhookEntry` dalam bentuk JSON:

```
{
  "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"
    }
  ]
}
```

## Contoh WhatsApp JSON untuk menerima pesan media
<a name="managing-event-destination-dlrs-example-receive-media"></a>

Berikut ini menunjukkan catatan acara untuk pesan media yang masuk. Untuk mengambil file media, gunakan perintah GetWhatsAppMessageMedia API. Untuk daftar bidang dan artinya, lihat Referensi Payload [Pemberitahuan Webhook](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 status pesan
<a name="managing-event-destinations-status"></a>

Saat mengirim pesan, Anda menerima pembaruan status tentang pesan tersebut. Anda harus mengaktifkan pencatatan peristiwa untuk menerima pemberitahuan ini, lihat[Tujuan pesan dan acara di AWS End User Messaging SocialTujuan pesan dan acara](managing-event-destinations.md).

## Status pesan
<a name="managing-event-destinations-status_body"></a>

Tabel berikut berisi kemungkinan status pesan.


****  

| Nama status | Deskripsi | 
| --- | --- | 
| diterima | Pesan telah diterima oleh WhatsApp untuk diproses. | 
| dihapus | Pelanggan menghapus pesan, dan Anda juga harus menghapus pesan jika diunduh ke server Anda. | 
| dikirim | Pesan berhasil dikirimkan ke pelanggan. | 
| gagal | Pesan gagal dikirim. | 
| Pesan mencoba ulang habis, menjatuhkan pesan. | Pesan itu tidak dapat diserahkan WhatsApp dalam periode percobaan ulang 180 menit dan dibatalkan. | 
| baca | Pelanggan membaca pesannya. Status ini hanya dikirim jika pelanggan telah membaca tanda terima dihidupkan. | 
| dikirim | Pesan telah dikirim tetapi masih dalam perjalanan. | 
| memperingati | Pesan berisi item yang tidak tersedia atau tidak ada. | 

## Sumber daya tambahan
<a name="managing-event-destinations-status_additional_resources"></a>

Untuk selengkapnya, lihat [Status Pesan](https://developers.facebook.com/docs/whatsapp/conversation-types#message-status) di *Referensi API Cloud Platform WhatsApp Bisnis*.