

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

# Mengirim pesan SMS di Amazon SNS dengan Versi 3 AWS SDK untuk PHP
<a name="sns-examples-sending-sms"></a>

Anda dapat menggunakan Amazon Simple Notification Service (Amazon SNS) untuk mengirim pesan teks, atau pesan SMS, ke perangkat berkemampuan SMS. Anda dapat mengirim pesan langsung ke sebuah nomor telepon, atau Anda dapat mengirim pesan ke beberapa nomor telepon sekaligus dengan berlangganan topik untuk nomor telepon tersebut dan mengirim pesan Anda ke topik tersebut.

Gunakan Amazon SNS untuk menentukan preferensi untuk pesan SMS, seperti bagaimana pengiriman Anda dioptimalkan (untuk biaya atau untuk pengiriman yang andal), batas pengeluaran bulanan Anda, cara pengiriman pesan dicatat, dan apakah akan berlangganan laporan penggunaan SMS harian. Preferensi ini diambil dan ditetapkan sebagai atribut SMS untuk Amazon SNS.

Saat Anda mengirim pesan SMS, tentukan nomor telepon menggunakan format E.164. E.164 adalah standar untuk struktur nomor telepon yang digunakan untuk telekomunikasi internasional. Nomor telepon yang mengikuti format ini dapat terdiri dari maksimum 15 digit bersama dengan prefiks tanda tambah (\+) dan kode negara. Misalnya, nomor telepon AS dalam format E.164 akan muncul sebagai XXX555 \+1001 0100.

Contoh berikut menunjukkan cara:
+ Ambil pengaturan default untuk mengirim pesan SMS dari akun Anda menggunakan [Get SMSAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#getsmsattributes).
+ Perbarui pengaturan default untuk mengirim pesan SMS dari akun Anda menggunakan [Set SMSAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#setsmsattributes).
+ Temukan apakah pemilik nomor telepon tertentu telah memilih untuk tidak menerima pesan SMS dari akun Anda menggunakan [CheckIfPhoneNumberISOptedKeluar](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#checkifphonenumberisoptedout).
+ Buat daftar nomor telepon di mana pemilik telah memilih untuk tidak menerima pesan SMS dari akun Anda menggunakan [ListPhoneNumberOptedOut](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listphonenumbersoptedout).
+ Kirim pesan teks (pesan SMS) langsung ke nomor telepon menggunakan [Publikasikan](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#publish).

Untuk informasi selengkapnya tentang menggunakan Amazon SNS, lihat [Menggunakan Amazon SNS untuk Pemberitahuan Pengguna dengan Nomor Ponsel sebagai Pelanggan (Kirim SMS](https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-phone-number-as-subscriber.html)).

Semua kode contoh untuk AWS SDK untuk PHP tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Kredensial
<a name="examplecredentials"></a>

Sebelum menjalankan kode contoh, konfigurasikan AWS kredenal Anda, seperti yang dijelaskan dalam. [Mengautentikasi dengan AWS menggunakan AWS SDK untuk PHP Versi 3](credentials.md) Kemudian impor AWS SDK untuk PHP, seperti yang dijelaskan dalam[Menginstal AWS SDK untuk PHP Versi 3](getting-started_installation.md).

## Dapatkan atribut SMS
<a name="get-sms-attributes"></a>

Untuk mengambil pengaturan default untuk pesan SMS, gunakan SMSAttributes operasi [Dapatkan](https://docs.aws.amazon.com/sns/latest/api/API_GetSMSAttributes.html).

Contoh ini mendapatkan `DefaultSMSType` atribut. Atribut ini mengontrol apakah pesan SMS dikirim sebagai`Promotional`, yang mengoptimalkan pengiriman pesan untuk dikenakan biaya terendah, atau as`Transactional`, yang mengoptimalkan pengiriman pesan untuk mencapai keandalan tertinggi.

 **Impor** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Kode Sampel** 

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

try {
    $result = $SnSclient->getSMSAttributes([
        'attributes' => ['DefaultSMSType'],
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Atur atribut SMS
<a name="set-sms-attributes"></a>

Untuk memperbarui pengaturan default untuk pesan SMS, gunakan SMSAttributes operasi [Set](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html).

Contoh ini menetapkan `DefaultSMSType` atribut ke`Transactional`, yang mengoptimalkan pengiriman pesan untuk mencapai keandalan tertinggi.

 **Impor** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Kode Sampel** 

```
$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());
}
```

## Periksa apakah nomor telepon telah memilih keluar
<a name="check-if-a-phone-number-has-opted-out"></a>

Untuk menentukan apakah pemilik nomor telepon tertentu telah memilih untuk tidak menerima pesan SMS dari akun Anda, gunakan [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/sns/latest/api/API_CheckIfPhoneNumberIsOptedOut.html)operasi.

Dalam contoh ini, nomor telepon dalam format E.164, standar untuk telekomunikasi internasional.

 **Impor** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Kode Sampel** 

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

$phone = '+1XXX5550100';

try {
    $result = $SnSclient->checkIfPhoneNumberIsOptedOut([
        'phoneNumber' => $phone,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Cantumkan nomor telepon yang dipilih
<a name="list-opted-out-phone-numbers"></a>

Untuk mengambil daftar nomor telepon di mana pemilik telah memilih untuk tidak menerima pesan SMS dari akun Anda, gunakan operasi. [ListPhoneNumbersOptedOut](https://docs.aws.amazon.com/sns/latest/api/API_ListPhoneNumbersOptedOut.html)

 **Impor** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Kode Sampel** 

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

try {
    $result = $SnSclient->listPhoneNumbersOptedOut();
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Publikasikan ke pesan teks (pesan SMS)
<a name="publish-to-a-text-message-sms-message"></a>

Untuk mengirimkan pesan teks (pesan SMS) langsung ke nomor telepon, gunakan operasi [Publikasikan](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html).

Dalam contoh ini, nomor telepon dalam format E.164, standar untuk telekomunikasi internasional.

Pesan SMS dapat berisi hingga 140 byte. Batas ukuran untuk satu tindakan publikasi SMS adalah 1.600 byte.

Untuk detail selengkapnya tentang mengirim pesan SMS, lihat [Mengirim Pesan SMS](https://docs.aws.amazon.com/sns/latest/dg/sms_publish-to-phone.html).

 **Impor** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Kode Sampel** 

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

$message = 'This message is sent from a Amazon SNS code sample.';
$phone = '+1XXX5550100';

try {
    $result = $SnSclient->publish([
        'Message' => $message,
        'PhoneNumber' => $phone,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```