Panduan API Referensi AWS SDK for JavaScript V3 menjelaskan secara rinci semua API operasi untuk AWS SDK for JavaScript versi 3 (V3).
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengirim Pesan SMS dengan Amazon SNS
Contoh kode Node.js ini menunjukkan:
-
Cara mendapatkan dan mengatur preferensi pesan SMS untuk Amazon SNS.
-
Cara memeriksa nomor telepon untuk melihat apakah telah memilih untuk tidak menerima pesan SMS.
-
Cara mendapatkan daftar nomor telepon yang telah memilih untuk tidak menerima pesan SMS.
-
Cara mengirim pesan SMS.
Skenario
Anda dapat menggunakan Amazon SNS untuk mengirim pesan teks, atau pesan SMS, ke perangkat yang mendukung 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.
Dalam contoh ini, Anda menggunakan serangkaian modul Node.js untuk mempublikasikan pesan teks SMS dari Amazon SNS ke perangkat berkemampuan SMS. Modul Node.js menggunakan SDK JavaScript untuk mempublikasikan pesan SMS menggunakan metode kelas SNS
klien berikut:
Tugas Prasyarat
Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
-
Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK for JavaScript dan pihak ketiga. Ikuti instruksi pada GitHub
. -
Buat file konfigurasi bersama dengan kredensi pengguna Anda. Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File konfigurasi dan kredensial bersama di Panduan Referensi AWSSDK dan Alat.
penting
Contoh-contoh ini menunjukkan cara mengimpor/mengekspor objek dan perintah layanan klien menggunakan ECMAScript6 (ES6).
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat unduhan Node.js.
. Jika Anda lebih suka menggunakan sintaks CommonJS, lihat. JavaScript ES6/CommonJS sintaks
Mendapatkan Atribut SMS
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.
Dalam contoh ini, gunakan modul Node.js untuk mendapatkan atribut SMS saat ini di Amazon SNS.
Buat libs
direktori, dan buat modul Node.js dengan nama filesnsClient.js
. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti REGION
dengan AWS Region Anda.
import { SNSClient } from "@aws-sdk/client-sns"; // The AWS Region can be provided here using the `region` property. If you leave it blank // the SDK will default to the region set in your AWS config. export const snsClient = new SNSClient({});
Kode contoh ini dapat ditemukan di sini GitHub
Buat modul Node.js dengan nama fileget-sms-attributes.js
.
Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk mengunduh klien dan paket yang diperlukan. Buat objek yang berisi parameter untuk mendapatkan atribut SMS, termasuk nama-nama atribut individual yang akan didapat. Untuk detail tentang atribut SMS yang tersedia, lihat SetSmSattributes di Referensi API Amazon Simple Notification Service.
Contoh ini mendapatkan DefaultSMSType
atribut, yang mengontrol apakah pesan SMS dikirim sebagaiPromotional
, yang mengoptimalkan pengiriman pesan untuk menimbulkan biaya terendah, atau asTransactional
, yang mengoptimalkan pengiriman pesan untuk mencapai keandalan tertinggi. Lewati parameter ke SetTopicAttributesCommand
metode kelas SNS
klien. Untuk memanggil SetSMSAttributesCommand
metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter.
catatan
Ganti ATTRIBUTE_NAME
dengan nama atribut.
import { GetSMSAttributesCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; export const getSmsAttributes = async () => { const response = await snsClient.send( // If you have not modified the account-level mobile settings of SNS, // the DefaultSMSType is undefined. For this example, it was set to // Transactional. new GetSMSAttributesCommand({ attributes: ["DefaultSMSType"] }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '67ad8386-4169-58f1-bdb9-debd281d48d5', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // attributes: { DefaultSMSType: 'Transactional' } // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node get-sms-attributes.js
Kode contoh ini dapat ditemukan di sini GitHub
Mengatur Atribut SMS
Dalam contoh ini, gunakan modul Node.js untuk mendapatkan atribut SMS saat ini di Amazon SNS.
Buat libs
direktori, dan buat modul Node.js dengan nama filesnsClient.js
. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti REGION
dengan AWS Region Anda.
import { SNSClient } from "@aws-sdk/client-sns"; // The AWS Region can be provided here using the `region` property. If you leave it blank // the SDK will default to the region set in your AWS config. export const snsClient = new SNSClient({});
Kode contoh ini dapat ditemukan di sini GitHub
Buat modul Node.js dengan nama fileset-sms-attribute-type.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Buat objek yang berisi parameter untuk mengatur atribut SMS, termasuk nama atribut individual yang akan ditetapkan dan nilai yang akan ditetapkan untuk masing-masing. Untuk detail tentang atribut SMS yang tersedia, lihat SetSmSattributes di Referensi API Amazon Simple Notification Service.
Contoh ini menetapkan DefaultSMSType
atribut keTransactional
, yang mengoptimalkan pengiriman pesan untuk mencapai keandalan tertinggi. Lewati parameter ke SetTopicAttributesCommand
metode kelas SNS
klien. Untuk memanggil SetSMSAttributesCommand
metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter.
import { SetSMSAttributesCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {"Transactional" | "Promotional"} defaultSmsType */ export const setSmsType = async (defaultSmsType = "Transactional") => { const response = await snsClient.send( new SetSMSAttributesCommand({ attributes: { // Promotional – (Default) Noncritical messages, such as marketing messages. // Transactional – Critical messages that support customer transactions, // such as one-time passcodes for multi-factor authentication. DefaultSMSType: defaultSmsType, }, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '1885b977-2d7e-535e-8214-e44be727e265', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // } // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node set-sms-attribute-type.js
Kode contoh ini dapat ditemukan di sini GitHub
Memeriksa Apakah Nomor Telepon Telah Memilih Keluar
Dalam contoh ini, gunakan modul Node.js untuk memeriksa nomor telepon untuk melihat apakah telah memilih keluar dari menerima pesan SMS.
Buat libs
direktori, dan buat modul Node.js dengan nama filesnsClient.js
. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti REGION
dengan AWS Region Anda.
import { SNSClient } from "@aws-sdk/client-sns"; // The AWS Region can be provided here using the `region` property. If you leave it blank // the SDK will default to the region set in your AWS config. export const snsClient = new SNSClient({});
Kode contoh ini dapat ditemukan di sini GitHub
Buat modul Node.js dengan nama filecheck-if-phone-number-is-opted-out.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya. Buat objek yang berisi nomor telepon untuk diperiksa sebagai parameter.
Contoh ini menetapkan PhoneNumber
parameter untuk menentukan nomor telepon yang akan diperiksa. Lewati objek ke CheckIfPhoneNumberIsOptedOutCommand
metode kelas SNS
klien. Untuk memanggil CheckIfPhoneNumberIsOptedOutCommand
metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter.
catatan
Ganti PHONE_NUMBER dengan nomor
telepon.
import { CheckIfPhoneNumberIsOptedOutCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; export const checkIfPhoneNumberIsOptedOut = async ( phoneNumber = "5555555555", ) => { const command = new CheckIfPhoneNumberIsOptedOutCommand({ phoneNumber, }); const response = await snsClient.send(command); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '3341c28a-cdc8-5b39-a3ee-9fb0ee125732', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // isOptedOut: false // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node check-if-phone-number-is-opted-out.js
Kode contoh ini dapat ditemukan di sini GitHub
Daftar Nomor Telepon yang Dipilih Keluar
Dalam contoh ini, gunakan modul Node.js untuk mendapatkan daftar nomor telepon yang telah memilih keluar dari menerima pesan SMS.
Buat libs
direktori, dan buat modul Node.js dengan nama filesnsClient.js
. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti REGION
dengan AWS Region Anda.
import { SNSClient } from "@aws-sdk/client-sns"; // The AWS Region can be provided here using the `region` property. If you leave it blank // the SDK will default to the region set in your AWS config. export const snsClient = new SNSClient({});
Kode contoh ini dapat ditemukan di sini GitHub
Buat modul Node.js dengan nama filelist-phone-numbers-opted-out.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya. Buat objek kosong sebagai parameter.
Lewati objek ke ListPhoneNumbersOptedOutCommand
metode kelas SNS
klien. Untuk memanggil ListPhoneNumbersOptedOutCommand
metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter.
import { ListPhoneNumbersOptedOutCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; export const listPhoneNumbersOptedOut = async () => { const response = await snsClient.send( new ListPhoneNumbersOptedOutCommand({}), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '44ff72fd-1037-5042-ad96-2fc16601df42', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // phoneNumbers: ['+15555550100'] // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node list-phone-numbers-opted-out.js
Kode contoh ini dapat ditemukan di sini GitHub
Menerbitkan Pesan SMS
Dalam contoh ini, gunakan modul Node.js untuk mengirim pesan SMS ke nomor telepon.
Buat libs
direktori, dan buat modul Node.js dengan nama filesnsClient.js
. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti REGION
dengan AWS Region Anda.
import { SNSClient } from "@aws-sdk/client-sns"; // The AWS Region can be provided here using the `region` property. If you leave it blank // the SDK will default to the region set in your AWS config. export const snsClient = new SNSClient({});
Kode contoh ini dapat ditemukan di sini GitHub
Buat modul Node.js dengan nama filepublish-sms.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Buat objek yang berisi PhoneNumber
parameter Message
dan.
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 memiliki maksimum 15 digit, dan diawali dengan karakter plus (+) dan kode negara. Misalnya, nomor telepon AS dalam format E.164 akan muncul sebagai +1001XXX5550100.
Contoh ini menetapkan PhoneNumber
parameter untuk menentukan nomor telepon untuk mengirim pesan. Lewati objek ke PublishCommand
metode kelas SNS
klien. Untuk memanggil PublishCommand
metode, buat fungsi asinkron yang menjalankan objek layanan Amazon SNS, melewati objek parameter.
catatan
Ganti TEXT_MESSAGE
dengan pesan teks, dan PHONE_NUMBER dengan nomor
telepon.
import { PublishCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string | Record<string, any>} message - The message to send. Can be a plain string or an object * if you are using the `json` `MessageStructure`. * @param {*} phoneNumber - The phone number to send the message to. */ export const publish = async ( message = "Hello from SNS!", phoneNumber = "+15555555555", ) => { const response = await snsClient.send( new PublishCommand({ Message: message, // One of PhoneNumber, TopicArn, or TargetArn must be specified. PhoneNumber: phoneNumber, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '7410094f-efc7-5f52-af03-54737569ab77', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // MessageId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node publish-sms.js
Kode contoh ini dapat ditemukan di sini GitHub