

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

# Mengatur preferensi pesan SMS di Amazon SNS
<a name="sms_preferences"></a>

Gunakan Amazon SNS untuk menentukan preferensi untuk olahpesan SMS. Misalnya, Anda dapat menentukan jika akan mengoptimalkan pengiriman untuk biaya atau keandalan, batas pengeluaran bulanan Anda, bagaimana pengiriman dicatat, dan jika akan berlangganan laporan penggunaan SMS harian atau tidak.

Preferensi ini berlaku untuk setiap pesan SMS yang Anda kirim dari akun Anda, namun Anda dapat mengganti sebagian pesan tersebut saat mengirim pesan individual. Untuk informasi selengkapnya, lihat [Menerbitkan pesan SMS ke ponsel menggunakan Amazon SNS](sms_sending-overview.md#sms_publish-to-phone).

## Mengatur preferensi pesan SMS menggunakan Konsol Manajemen AWS
<a name="sms_preferences_console"></a>

1. Masuk ke [konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Pilih [wilayah yang mendukung olahpesan SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Pada panel navigasi, pilih **Seluler** dan kemudian **Pesan teks (SMS)**.

1. Di halaman **Mobile text messaging (SMS)** (Olahpesan teks seluler (SMS)), di bagian **Text messaging preferences**(Preferensi pesan teks), pilih **Edit**.

1. Di halaman **Edit text messaging preferences** (Edit preferensi olahpesan teks), di bagian **Details**, lakukan hal berikut:

   1. Untuk **Default message type** (Jenis pesan bawaan), pilih salah satu jenis berikut:
      + **Promosi** — Pesan non-kritis (misalnya, pemasaran). Amazon SNS mengoptimalkan pengiriman pesan agar dikenakan biaya terendah.
      + **Transaksional** (default) — Pesan penting yang mendukung transaksi pelanggan, seperti kode sandi satu kali untuk otentikasi multi-faktor. Amazon SNS mengoptimalkan pengiriman pesan agar mencapai keandalan tertinggi.

      Untuk informasi harga untuk pesan promosi dan transaksional, lihat [Harga SMS Global](https://aws.amazon.com/sns/sms-pricing/).

   1. (Opsional) Untuk **Account spend limit** (Batas pengeluaran akun), masukkan jumlah (dalam USD) yang ingin Anda gunakan untuk pengeluaran pesan SMS setiap bulannya.
**penting**  
Secara default, kuota pengeluaran diatur sebesar 1,00 USD. Jika Anda ingin meningkatkan kuota layanan, [kirimkan permintaan](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-sns).
Jika jumlah yang ditetapkan di konsol tersebut melebihi kuota layanan Anda, Amazon SNS berhenti mengirimkan pesan SMS.
Karena Amazon SNS adalah sistem terdistribusi, ia berhenti mengirimkan pesan SMS dalam beberapa menit sejak kuota pengeluaran terlampaui. Selama interval ini, jika Anda terus mengirim pesan SMS, Anda mungkin akan dikenakan biaya yang melebihi kuota Anda.

1. (Opsional) Untuk **Default sender ID** (ID pengirim default), masukkan ID kustom, seperti merek bisnis Anda, yang ditampilkan sebagai pengirim di perangkat penerima.
**catatan**  
Support untuk pengirim IDs bervariasi menurut negara.

1. (Opsional) Masukkan nama **Nama bucket Amazon S3 untuk laporan penggunaan**.
**catatan**  
Kebijakan bucket Amazon S3 harus memberikan akses tulis ke Amazon SNS.

1. Pilih **Simpan perubahan**.

## Pengaturan preferensi (AWS SDKs)
<a name="sms_preferences_sdk"></a>

Untuk mengatur preferensi SMS Anda menggunakan salah satu AWS SDKs, gunakan tindakan dalam SDK yang sesuai dengan `SetSMSAttributes` permintaan di Amazon SNS API. Dengan permintaan ini, Anda menetapkan nilai ke atribut SMS yang berbeda, seperti kuota pengeluaran bulanan dan jenis SMS default Anda (promosi atau transaksional). Untuk semua atribut SMS, lihat [Mengatur SMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html) *Referensi API Layanan Pemberitahuan Sederhana Amazon*.

Contoh kode berikut menunjukkan cara menggunakan`SetSMSAttributes`.

------
#### [ C\+\+ ]

**SDK untuk C\+\+**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples). 
Cara menggunakan Amazon SNS untuk mengatur atribut DefaultSMSType .  

```
//! Set the default settings for sending SMS messages.
/*!
  \param smsType: The type of SMS message that you will send by default.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::setSMSType(const Aws::String &smsType,
                             const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::SetSMSAttributesRequest request;
    request.AddAttributes("DefaultSMSType", smsType);

    const Aws::SNS::Model::SetSMSAttributesOutcome outcome = snsClient.SetSMSAttributes(
            request);

    if (outcome.IsSuccess()) {
        std::cout << "SMS Type set successfully " << std::endl;
    }
    else {
        std::cerr << "Error while setting SMS Type: '"
                  << outcome.GetError().GetMessage()
                  << "'" << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Untuk detail API, lihat [Menyetel SMSAttributes](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/SetSMSAttributes) di *Referensi AWS SDK untuk C\+\+ API*. 

------
#### [ CLI ]

**AWS CLI**  
**Untuk mengatur atribut pesan SMS**  
`set-sms-attributes`Contoh berikut menetapkan ID pengirim default untuk pesan SMS ke`MyName`.  

```
aws sns set-sms-attributes \
    --attributes {{DefaultSenderID=MyName}}
```
Perintah ini tidak menghasilkan output.  
+  Untuk detail API, lihat [Menyetel SMSAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/set-sms-attributes.html) di *Referensi AWS CLI Perintah*. 

------
#### [ Java ]

**SDK untuk Java 2.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesRequest;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesResponse;
import software.amazon.awssdk.services.sns.model.SnsException;
import java.util.HashMap;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class SetSMSAttributes {
    public static void main(String[] args) {
        HashMap<String, String> attributes = new HashMap<>(1);
        attributes.put("DefaultSMSType", "Transactional");
        attributes.put("UsageReportS3Bucket", "janbucket");

        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();
        setSNSAttributes(snsClient, attributes);
        snsClient.close();
    }

    public static void setSNSAttributes(SnsClient snsClient, HashMap<String, String> attributes) {
        try {
            SetSmsAttributesRequest request = SetSmsAttributesRequest.builder()
                    .attributes(attributes)
                    .build();

            SetSmsAttributesResponse result = snsClient.setSMSAttributes(request);
            System.out.println("Set default Attributes to " + attributes + ". Status was "
                    + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Untuk detail API, lihat [Menyetel SMSAttributes](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/SetSMSAttributes) di *Referensi AWS SDK for Java 2.x API*. 

------
#### [ JavaScript ]

**SDK untuk JavaScript (v3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples). 
Buat klien dalam modul terpisah dan ekspor klien tersebut.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Mengimpor modul SDK dan klien dan memanggil API.  

```
import { SetSMSAttributesCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {"Transactional" | "Promotional"} defaultSmsType
 */
export const setSmsType = async (defaultSmsType = "Transactional") => {
  const response = await snsClient.send(
    new SetSMSAttributesCommand({
      attributes: {
        // Promotional – (Default) Noncritical messages, such as marketing messages.
        // Transactional – Critical messages that support customer transactions,
        // such as one-time passcodes for multi-factor authentication.
        DefaultSMSType: defaultSmsType,
      },
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '1885b977-2d7e-535e-8214-e44be727e265',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
  return response;
};
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-sending-sms.html#sending-sms-setattributes). 
+  Untuk detail API, lihat [Menyetel SMSAttributes](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/SetSMSAttributesCommand) di *Referensi AWS SDK untuk JavaScript API*. 

------
#### [ PHP ]

**SDK untuk PHP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

try {
    $result = $SnSclient->SetSMSAttributes([
        'attributes' => [
            'DefaultSMSType' => 'Transactional',
        ],
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#set-sms-attributes). 
+  Untuk detail API, lihat [Menyetel SMSAttributes](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/SetSMSAttributes) di *Referensi AWS SDK untuk PHP API*. 

------

## Menyetel preferensi pesan SMS untuk pengiriman khusus negara
<a name="sms_preferences_country_specific"></a>

Anda dapat mengelola dan mengontrol lalu lintas SMS Anda dengan mengirim pesan hanya ke negara tujuan tertentu. Ini memastikan bahwa pesan Anda dikirim hanya ke negara yang disetujui, menghindari biaya SMS yang tidak diinginkan. Petunjuk berikut menggunakan konfigurasi Protect Amazon Pinpoint untuk menentukan negara yang ingin Anda izinkan atau blokir.

1. Buka AWS SMS konsol di [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).

1. Di panel navigasi, di bawah **Ikhtisar**, di bagian **Mulai cepat**, pilih **Buat konfigurasi proteksi**.

1. Di bawah **Lindungi detail konfigurasi**, masukkan **nama yang ramah bisnis** untuk konfigurasi proteksi Anda (misalnya, Allow-Only-AU).

1. Di bawah **aturan negara SMS**, pilih kotak centang **Wilayah/Negara** untuk memblokir pengiriman pesan ke semua negara yang didukung.

1. Hapus centang kotak untuk negara tempat Anda ingin mengirim pesan. **Misalnya, untuk mengizinkan pesan hanya ke Australia, batalkan centang kotak untuk Australia.**

1. Di bagian **Lindungi asosiasi konfigurasi**, di bawah **Jenis asosiasi**, pilih **Akun default**. Ini akan memastikan bahwa konfigurasi AWS Olah Pesan Pengguna Akhir SMS Protect memengaruhi semua pesan yang dikirim melalui Amazon SNS, Amazon [Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html), dan panggilan Amazon Pinpoint API. [https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-sms.html](https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-sms.html)

1. Pilih **Buat konfigurasi proteksi** untuk menyimpan pengaturan Anda.

   Pesan konfirmasi berikut ditampilkan:

   ```
   Success Protect configuration protect-abc0123456789 has been created.
   ```

1. Masuk ke [Konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. [**Publikasikan pesan**](sns-publishing.md) ke salah satu negara yang diblokir, seperti India.

   Pesan tidak akan terkirim. Anda dapat memverifikasi ini di log kegagalan pengiriman menggunakan [CloudWatch](sms_stats_cloudwatch.md). Cari grup log **sns/region/AccountID/DirectPublishToPhoneNumber/Failure**untuk respons yang mirip dengan contoh berikut:

   ```
   {
   "notification": {
   "messageId": "bd59a509-XXXX-XXXX-82f8-fbdb8cb68217",
   "timestamp": "YYYY-MM-DD XX:XX:XX.XXXX“
   },
   "delivery": {
   "destination": "+91XXXXXXXXXX",
   "smsType": "Transactional",
   "providerResponse": "Cannot deliver message to the specified destination country",
   "dwellTimeMs": 85
   },
   "status": "FAILURE"
   }
   ```