Mengirim pesan SMS di Amazon SNS dengan Versi 3 AWS SDK for PHP - AWS SDK for PHP

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 for PHP

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 +1001XXX5550100.

Contoh berikut menunjukkan cara:

  • Ambil pengaturan default untuk mengirim pesan SMS dari akun Anda menggunakan GetSmSattributes.

  • Perbarui pengaturan default untuk mengirim pesan SMS dari akun Anda menggunakan SetsMsatTributes.

  • Temukan apakah pemilik nomor telepon tertentu telah memilih untuk tidak menerima pesan SMS dari akun Anda menggunakan CheckIfPhoneNumberIS OptedOut.

  • Buat daftar nomor telepon di mana pemilik telah memilih untuk tidak menerima pesan SMS dari akun Anda menggunakan ListPhoneNumberOptedOut.

  • Kirim pesan teks (pesan SMS) langsung ke nomor telepon menggunakan Publikasikan.

Untuk informasi selengkapnya tentang menggunakan Amazon SNS, lihat Menggunakan Amazon SNS untuk Pemberitahuan Pengguna dengan Nomor Ponsel sebagai Pelanggan (Kirim SMS).

Semua kode contoh untuk AWS SDK for PHP tersedia di sini GitHub.

Kredensial

Sebelum menjalankan kode contoh, konfigurasikan AWS kredenal Anda, seperti yang dijelaskan dalam. Kredensial Kemudian imporAWS SDK for PHP, seperti yang dijelaskan dalamPenggunaan dasar.

Dapatkan atribut SMS

Untuk mengambil pengaturan default untuk pesan SMS, gunakan operasi GetSmSattributes.

Contoh ini mendapatkan DefaultSMSType atribut. Atribut ini mengontrol apakah pesan SMS dikirim sebagaiPromotional, yang mengoptimalkan pengiriman pesan untuk dikenakan biaya terendah, atau asTransactional, 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

Untuk memperbarui pengaturan default untuk pesan SMS, gunakan operasi SetSmSattributes.

Contoh ini menetapkan DefaultSMSType atribut keTransactional, 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

Untuk menentukan apakah pemilik nomor telepon tertentu telah memilih untuk tidak menerima pesan SMS dari akun Anda, gunakan CheckIfPhoneNumberIsOptedOutoperasi.

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

Untuk mengambil daftar nomor telepon di mana pemilik telah memilih untuk tidak menerima pesan SMS dari akun Anda, gunakan operasi. ListPhoneNumbersOptedOut

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)

Untuk mengirimkan pesan teks (pesan SMS) langsung ke nomor telepon, gunakan operasi Publikasikan.

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.

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