

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

# Contoh Amazon SNS menggunakan Versi 3 AWS SDK untuk PHP
<a name="sns-examples"></a>

Amazon Simple Notification Service (Amazon SNS) adalah layanan web yang mengoordinasikan dan mengelola pengiriman atau pengiriman pesan untuk berlangganan titik akhir atau klien.

Di Amazon SNS, ada dua jenis klien: penerbit (juga disebut sebagai produsen) dan pelanggan (juga disebut sebagai konsumen). Penerbit berkomunikasi secara asinkron dengan pelanggan dengan memproduksi dan mengirim pesan ke suatu topik, yang merupakan jalur akses logis dan saluran komunikasi. Pelanggan (server web, alamat email, antrian Amazon SQS, AWS Lambda fungsi) mengkonsumsi atau menerima pesan atau pemberitahuan melalui salah satu protokol yang didukung (Amazon SQS,, AWS SMS email,, Lambda) ketika mereka berlangganan topik. HTTP/HTTPS URLs

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

**Topics**
+ [Mengelola topik](sns-examples-managing-topics.md)
+ [Mengelola langganan](sns-examples-subscribing-unsubscribing-topics.md)
+ [Mengirim pesan SMS amazon](sns-examples-sending-sms.md)

# Mengelola topik di Amazon SNS dengan Versi 3 AWS SDK untuk PHP
<a name="sns-examples-managing-topics"></a>

Untuk mengirim notifikasi ke Amazon Simple Queue Service (Amazon SQS) HTTP/HTTPS URLs,, email, AWS Lambda atau AWS SMS, Anda harus terlebih dahulu membuat topik yang mengelola pengiriman pesan ke pelanggan mana pun dari topik tersebut.

Dalam hal pola desain pengamat, topik seperti subjek. Setelah topik dibuat, Anda menambahkan pelanggan yang diberi tahu secara otomatis saat pesan dipublikasikan ke topik tersebut.

Pelajari lebih lanjut tentang berlangganan topik di [Mengelola Langganan di Amazon AWS SDK untuk PHP SNS](sns-examples-subscribing-unsubscribing-topics.md) dengan Versi 3.

Contoh berikut menunjukkan cara:
+ Buat topik untuk mempublikasikan notifikasi untuk digunakan [CreateTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#createtopic).
+ Kembalikan daftar topik pemohon menggunakan [ListTopics](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listtopic).
+ Hapus topik dan semua langganannya menggunakan [DeleteTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#deletetopic).
+ Kembalikan semua properti topik menggunakan [GetTopicAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#gettopicattributes).
+ Izinkan pemilik topik untuk menyetel atribut topik ke nilai baru menggunakan [SetTopicAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#settopicattributes).

Untuk informasi selengkapnya tentang menggunakan Amazon SNS, lihat [Atribut Topik Amazon SNS untuk](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html) Status Pengiriman Pesan.

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 kredensil 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).

## Buat topik
<a name="create-a-topic"></a>

Untuk membuat topik, gunakan [CreateTopic](https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)operasi.

Setiap nama topik dalam Anda Akun AWS harus unik.

 **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'
]);

$topicname = 'myTopic';

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

## Buat daftar topik Anda
<a name="list-your-topics"></a>

Untuk membuat daftar hingga 100 topik yang ada di AWS Wilayah saat ini, gunakan [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html)operasi.

 **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->listTopics();
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Hapus topik
<a name="delete-a-topic"></a>

Untuk menghapus topik yang ada dan semua langganannya, gunakan [DeleteTopic](https://docs.aws.amazon.com/sns/latest/api/API_DeleteTopic.html)operasi.

Setiap pesan yang belum dikirim ke pelanggan juga akan dihapus.

 **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'
]);

$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

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

## Dapatkan atribut topik
<a name="get-topic-attributes"></a>

Untuk mengambil properti dari satu topik yang ada, gunakan [GetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetTopicAttributes.html)operasi.

 **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'
]);

$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

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

## Tetapkan atribut topik
<a name="set-topic-attributes"></a>

Untuk memperbarui properti dari satu topik yang ada, gunakan [SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)operasi.

Anda hanya dapat mengatur`Policy`,`DisplayName`, dan `DeliveryPolicy` atribut.

 **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'
]);
$attribute = 'Policy | DisplayName | DeliveryPolicy';
$value = 'First Topic';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->setTopicAttributes([
        'AttributeName' => $attribute,
        'AttributeValue' => $value,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

# Mengelola langganan di Amazon SNS AWS SDK untuk PHP dengan Versi 3
<a name="sns-examples-subscribing-unsubscribing-topics"></a>

Gunakan topik Amazon Simple Notification Service (Amazon SNS) untuk mengirim notifikasi ke Amazon Simple Queue Service (Amazon SQS), HTTP/HTTPS, alamat email, (), atau. AWS Server Migration Service AWS SMS AWS Lambda

Langganan dilampirkan ke topik yang mengelola pengiriman pesan ke pelanggan. Pelajari lebih lanjut cara membuat topik di [Mengelola Topik di Amazon SNS dengan AWS SDK untuk PHP Versi 3](sns-examples-managing-topics.md).

Contoh berikut menunjukkan cara:
+ Berlangganan topik yang ada menggunakan [Berlangganan](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#subscribe).
+ Verifikasi langganan menggunakan [ConfirmSubscription](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#confirmsubscription).
+ Buat daftar langganan yang ada menggunakan [ListSubscriptionsByTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listsubscriptionsbytopic).
+ Hapus langganan menggunakan [Berhenti Berlangganan](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#unsubscribe).
+ Kirim pesan ke semua pelanggan topik 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 for Messaging](https://docs.aws.amazon.com/sns/latest/dg/sns-system-to-system-messaging.html). System-to-System

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).

## Berlangganan alamat email ke suatu topik
<a name="subscribe-an-email-address-to-a-topic"></a>

Untuk memulai langganan ke alamat email, gunakan operasi [Berlangganan](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html).

Anda dapat menggunakan metode berlangganan untuk berlangganan beberapa titik akhir yang berbeda ke topik Amazon SNS, tergantung pada nilai yang digunakan untuk parameter yang diteruskan. Ini ditunjukkan dalam contoh lain dalam topik ini.

Dalam contoh ini, titik akhir adalah alamat email. Token konfirmasi dikirim ke email ini. Verifikasi langganan dengan token konfirmasi ini dalam waktu tiga hari sejak diterimanya.

 **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'
]);

$protocol = 'email';
$endpoint = 'sample@example.com';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->subscribe([
        'Protocol' => $protocol,
        'Endpoint' => $endpoint,
        'ReturnSubscriptionArn' => true,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Berlangganan titik akhir aplikasi ke suatu topik
<a name="subscribe-an-application-endpoint-to-a-topic"></a>

Untuk memulai langganan ke aplikasi web, gunakan operasi [Berlangganan](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html).

Anda dapat menggunakan metode berlangganan untuk berlangganan beberapa titik akhir yang berbeda ke topik Amazon SNS, tergantung pada nilai yang digunakan untuk parameter yang diteruskan. Ini ditunjukkan dalam contoh lain dalam topik ini.

Dalam contoh ini, titik akhir adalah URL. Token konfirmasi dikirim ke alamat web ini. Verifikasi langganan dengan token konfirmasi ini dalam waktu tiga hari sejak diterimanya.

 **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'
]);

$protocol = 'https';
$endpoint = 'https://';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->subscribe([
        'Protocol' => $protocol,
        'Endpoint' => $endpoint,
        'ReturnSubscriptionArn' => true,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Berlangganan fungsi Lambda ke suatu topik
<a name="subscribe-a-lam-function-to-a-topic"></a>

Untuk memulai langganan ke fungsi Lambda, gunakan operasi Berlangganan[.](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html)

Anda dapat menggunakan metode berlangganan untuk berlangganan beberapa titik akhir yang berbeda ke topik Amazon SNS, tergantung pada nilai yang digunakan untuk parameter yang diteruskan. Ini ditunjukkan dalam contoh lain dalam topik ini.

Dalam contoh ini, titik akhir adalah fungsi Lambda. Token konfirmasi dikirim ke fungsi Lambda ini. Verifikasi langganan dengan token konfirmasi ini dalam waktu tiga hari sejak diterimanya.

 **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'
]);

$protocol = 'lambda';
$endpoint = 'arn:aws:lambda:us-east-1:123456789023:function:messageStore';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->subscribe([
        'Protocol' => $protocol,
        'Endpoint' => $endpoint,
        'ReturnSubscriptionArn' => true,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Berlangganan SMS teks ke suatu topik
<a name="subscribe-a-text-sms-to-a-topic"></a>

Untuk mengirim pesan SMS ke beberapa nomor telepon secara bersamaan, berlangganan setiap nomor ke topik.

Untuk memulai langganan ke nomor telepon, gunakan operasi [Berlangganan](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html).

Anda dapat menggunakan metode berlangganan untuk berlangganan beberapa titik akhir yang berbeda ke topik Amazon SNS, tergantung pada nilai yang digunakan untuk parameter yang diteruskan. Ini ditunjukkan dalam contoh lain dalam topik ini.

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

Token konfirmasi dikirim ke nomor telepon ini. Verifikasi langganan dengan token konfirmasi ini dalam waktu tiga hari sejak diterimanya.

Untuk cara alternatif untuk mengirim pesan SMS dengan Amazon SNS, lihat [Mengirim Pesan SMS di Amazon SNS dengan AWS SDK untuk PHP](sns-examples-sending-sms.md) Versi 3.

 **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'
]);

$protocol = 'sms';
$endpoint = '+1XXX5550100';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->subscribe([
        'Protocol' => $protocol,
        'Endpoint' => $endpoint,
        'ReturnSubscriptionArn' => true,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Konfirmasikan langganan ke suatu topik
<a name="confirm-subscription-to-a-topic"></a>

Untuk benar-benar membuat langganan, pemilik titik akhir harus mengakui maksud untuk menerima pesan dari topik menggunakan token yang dikirim saat langganan dibuat pada awalnya, seperti yang dijelaskan sebelumnya. Token konfirmasi berlaku selama tiga hari. Setelah tiga hari, Anda dapat mengirim ulang token dengan membuat langganan baru.

Untuk mengonfirmasi langganan, gunakan [ConfirmSubscription](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html)operasi.

 **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'
]);

$subscription_token = 'arn:aws:sns:us-east-1:111122223333:MyTopic:123456-abcd-12ab-1234-12ba3dc1234a';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->confirmSubscription([
        'Token' => $subscription_token,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Daftar langganan ke suatu topik
<a name="list-subscriptions-to-a-topic"></a>

Untuk membuat daftar hingga 100 langganan yang ada di AWS Wilayah tertentu, gunakan [ListSubscriptions](https://docs.aws.amazon.com/sns/latest/api/API_ListSubscriptions.html)operasi.

 **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->listSubscriptions();
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Berhenti berlangganan dari suatu topik
<a name="unsubscribe-from-a-topic"></a>

Untuk menghapus titik akhir yang berlangganan topik, gunakan operasi [Berhenti](https://docs.aws.amazon.com/sns/latest/api/API_Unsubscribe.html) berlangganan.

Jika langganan memerlukan otentikasi untuk dihapus, hanya pemilik langganan atau pemilik topik yang dapat berhenti berlangganan, dan tanda tangan diperlukan. AWS Jika panggilan berhenti berlangganan tidak memerlukan otentikasi dan pemohon bukan pemilik langganan, pesan pembatalan akhir akan dikirimkan ke titik akhir.

 **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'
]);

$subscription = 'arn:aws:sns:us-east-1:111122223333:MySubscription';

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

## Publikasikan pesan ke topik Amazon SNS
<a name="publish-a-message-to-an-sns-topic"></a>

[Untuk mengirimkan pesan ke setiap titik akhir yang berlangganan topik Amazon SNS, gunakan operasi Publikasikan.](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html)

Buat objek yang berisi parameter untuk menerbitkan pesan, termasuk teks pesan dan Nama Sumber Daya Amazon (ARN) dari topik Amazon SNS.

 **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.';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

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

# 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 (\$1) dan kode negara. Misalnya, nomor telepon AS dalam format E.164 akan muncul sebagai XXX555 \$11001 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());
}
```