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:
-
Berlangganan topik yang ada menggunakan Berlangganan.
-
Verifikasi langganan menggunakan ConfirmSubscription.
-
Buat daftar langganan yang ada menggunakan ListSubscriptionsByTopic.
-
Hapus langganan menggunakan Berhenti Berlangganan.
-
Kirim pesan ke semua pelanggan topik menggunakan Publikasikan.
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
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()); }