Mengelola langganan di Amazon SNS AWS SDK for PHP dengan Versi 3 - AWS SDK for PHP

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

Mengelola langganan di Amazon SNS AWS SDK for PHP dengan Versi 3

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 for PHP Versi 3.

Contoh berikut menunjukkan cara:

Untuk informasi selengkapnya tentang menggunakan Amazon SNS, lihat Menggunakan Amazon SNS untuk Pesan Sistem-ke-Sistem.

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.

Berlangganan alamat email ke suatu topik

Untuk memulai langganan ke alamat email, gunakan operasi Berlangganan.

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

Untuk memulai langganan ke aplikasi web, gunakan operasi Berlangganan.

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

Untuk memulai langganan ke fungsi Lambda, gunakan operasi Berlangganan.

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

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

Untuk memulai langganan ke nomor telepon, gunakan operasi Berlangganan.

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

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

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

Untuk membuat daftar hingga 100 langganan yang ada di AWS Wilayah tertentu, gunakan ListSubscriptionsoperasi.

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

Untuk menghapus titik akhir yang berlangganan topik, gunakan operasi Berhenti 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

Untuk mengirimkan pesan ke setiap titik akhir yang berlangganan topik Amazon SNS, gunakan operasi Publikasikan.

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