Dalam pengembangan aplikasi, Anda mungkin perlu mengirim kode verifikasi, notifikasi, atau pesan promosi kepada pengguna—misalnya, saat pengguna mendaftarkan akun atau ketika status pesanan berubah. Topik ini menjelaskan cara mengintegrasikan kit pengembangan perangkat lunak (SDK) Alibaba Cloud untuk memanggil API Short Message Service (SMS), sehingga memungkinkan pengiriman pesan teks yang cepat, aman, dan andal.
Arsitektur
Pemanggilan API Short Message Service melibatkan aplikasi Anda, Alibaba Cloud SDK, Resource Access Management (RAM), dan Short Message Service.
Alur prosesnya sebagai berikut: Developer mengintegrasikan Alibaba Cloud SDK ke dalam aplikasi, lalu menggunakan RAM untuk memberikan kredensial akses dengan izin Short Message Service kepada aplikasi tersebut. Aplikasi kemudian menggunakan kredensial tersebut untuk memanggil API Short Message Service dan mengirim permintaan. Server Alibaba Cloud mengotentikasi permintaan dan memverifikasi kepatuhannya. Setelah permintaan disetujui, pesan dikirim ke gerbang SMS, lalu diteruskan oleh jaringan penyedia layanan ke ponsel pengguna.
Topik ini menggunakan operasi SendMessageToGlobe sebagai contoh untuk memandu Anda dalam memanggil API Short Message Service. Anda akan mempelajari cara:
Jika Anda sudah terbiasa memanggil API, Anda dapat langsung membuka referensi API untuk memanggil operasi yang diperlukan.
Kami merekomendasikan agar Anda mengintegrasikan SDK untuk memanggil API. Jika Anda ingin menyesuaikan enkapsulasi permintaan, lihat Body permintaan dan mekanisme signature V3.
Persiapan
Prasyarat | Deskripsi | Referensi |
Izin pengguna | Buka Konsol RAM dan klik nama pengguna RAM untuk melihat izin pengguna tersebut. Pastikan pengguna RAM yang Anda gunakan untuk memanggil API memiliki izin yang diperlukan untuk Short Message Service:
| |
| Anda dapat membuka Konsol RAM, klik nama pengguna RAM untuk masuk ke halaman produk, klik tab AccessKey, lalu lihat AccessKey ID. | |
| Rahasia AccessKey tidak dapat dilihat setelah dibuat. Jika Anda tidak memiliki cadangan lokal, buat pasangan AccessKey baru. | |
Saldo akun/Kuota paket | Pastikan akun Anda memiliki saldo atau kuota paket yang mencukupi. Anda dapat melihat kuota paket pada halaman Statistik Paket atau melihat saldo akun pada halaman Biaya dan Pengeluaran di Konsol. |
Konfigurasikan kredensial
Langkah 1: Buat pengguna RAM dan berikan izin
Akun Alibaba Cloud Anda memiliki izin tingkat tinggi. Untuk keamanan, kami merekomendasikan agar Anda menggunakan pengguna Resource Access Management (RAM) untuk panggilan API dan operasi sehari-hari. Untuk informasi selengkapnya tentang pengguna RAM, lihat Ikhtisar pengguna RAM.
Buat pengguna RAM: Buka Create User. Konfigurasikan nama pengguna dan atur Access Configuration ke Permanent AccessKey. Klik OK. Segera simpan pasangan AccessKey setelah pembuatan.
Berikan izin kepada pengguna RAM: Buka Users. Temukan pengguna RAM yang telah Anda buat dan klik Actions, lalu klik Attach Policy. Di kotak pencarian Policy, masukkan AliyunDysmsFullAccess, pilih kebijakan tersebut, lalu klik OK.
AliyunDysmsFullAccess: Memberikan izin manajemen penuh untuk SMS Alibaba Cloud.
AliyunDysmsReadOnlyAccess: Memberikan izin read-only untuk SMS Alibaba Cloud.
Untuk membuat kebijakan kustom, lihat Otorisasi RAM.
Langkah 2: Dapatkan kredensial akses Anda
Konfigurasikan variabel lingkungan untuk menyimpan pasangan AccessKey Anda. Untuk informasi selengkapnya, lihat Konfigurasikan variabel lingkungan di Linux, macOS, dan Windows.
Untuk menghindari kebocoran pasangan AccessKey Anda, jangan hard-code di aplikasi Anda. Gunakan variabel lingkungan sebagai gantinya.
Contoh ini menggunakan
ALIBABA_CLOUD_ACCESS_KEY_IDdanALIBABA_CLOUD_ACCESS_KEY_SECRETsebagai nama variabel lingkungan.
Langkah 3: Langkah-langkah mengonfigurasi variabel lingkungan
Windows
Di Windows, Anda dapat mengonfigurasi variabel lingkungan melalui System Properties, Command Prompt (CMD), atau PowerShell.
System Properties
Variabel lingkungan yang dikonfigurasi dengan cara ini bersifat permanen.
Diperlukan izin administratif untuk mengubah variabel lingkungan sistem.
Perubahan variabel lingkungan tidak langsung berlaku pada jendela command yang sedang terbuka, IDE, atau aplikasi lain yang berjalan. Anda harus merestart program tersebut atau membuka baris perintah baru agar perubahan berlaku.
Di desktop Windows, tekan
Win+Q. Di kotak pencarian, cari Edit the system environment variables dan klik untuk membuka jendela System Properties.Di jendela System Properties, klik Environment Variables. Di bagian System variables, klik New. Atur Variable name menjadi
ALIBABA_CLOUD_ACCESS_KEY_IDdan Variable value menjadi ID AccessKey Anda. Ulangi proses tersebut untuk mengaturALIBABA_CLOUD_ACCESS_KEY_SECRET.
Klik OK di masing-masing dari tiga jendela untuk menutup halaman konfigurasi properti sistem dan menyelesaikan konfigurasi.
Buka jendela CMD atau Windows PowerShell dan jalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah dikonfigurasi.
Perintah CMD:
echo %ALIBABA_CLOUD_ACCESS_KEY_ID% echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%Perintah Windows PowerShell:
echo $env:ALIBABA_CLOUD_ACCESS_KEY_ID echo $env:ALIBABA_CLOUD_ACCESS_KEY_SECRET
CMD
Tambahkan variabel lingkungan permanen
Jika Anda ingin variabel lingkungan kunci API tersedia di semua sesi baru untuk pengguna saat ini, lakukan langkah-langkah berikut.
Jalankan perintah berikut di CMD.
# Ganti YOUR_ACCESS_KEY_ID dengan ID AccessKey Anda setx ALIBABA_CLOUD_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID" # Ganti YOUR_ACCESS_KEY_SECRET dengan rahasia AccessKey Anda setx ALIBABA_CLOUD_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"Buka jendela CMD baru.
Jalankan perintah berikut di jendela CMD baru untuk memeriksa apakah variabel lingkungan telah dikonfigurasi.
echo %ALIBABA_CLOUD_ACCESS_KEY_ID% echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%
Tambahkan variabel lingkungan sementara
Jika Anda hanya ingin menggunakan variabel lingkungan dalam sesi saat ini, jalankan perintah berikut di CMD.
# Ganti YOUR_ACCESS_KEY_ID dengan ID AccessKey Anda
set ALIBABA_CLOUD_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID
# Ganti YOUR_ACCESS_KEY_SECRET dengan rahasia AccessKey Anda
set ALIBABA_CLOUD_ACCESS_KEY_SECRET=YOUR_ACCESS_KEY_SECRETAnda dapat menjalankan perintah berikut dalam sesi saat ini untuk memeriksa apakah variabel lingkungan telah dikonfigurasi.
echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%PowerShell
Tambahkan variabel lingkungan permanen
Jika Anda ingin variabel lingkungan kunci API tersedia di semua sesi baru untuk pengguna saat ini, lakukan langkah-langkah berikut.
Jalankan perintah berikut di PowerShell.
# Ganti YOUR_ACCESS_KEY_ID dengan ID AccessKey Anda [Environment]::SetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) # Ganti YOUR_ACCESS_KEY_SECRET dengan rahasia AccessKey Anda [Environment]::SetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)Buka jendela PowerShell baru.
Jalankan perintah berikut di jendela PowerShell baru untuk memeriksa apakah variabel lingkungan telah dikonfigurasi.
echo $env:ALIBABA_CLOUD_ACCESS_KEY_ID echo $env:ALIBABA_CLOUD_ACCESS_KEY_SECRET
Tambahkan variabel lingkungan sementara
Jika Anda hanya ingin menggunakan variabel lingkungan dalam sesi saat ini, jalankan perintah berikut di PowerShell.
# Ganti YOUR_ACCESS_KEY_ID dengan ID AccessKey Anda
$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "YOUR_ACCESS_KEY_ID"
# Ganti YOUR_ACCESS_KEY_SECRET dengan rahasia AccessKey Anda
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "YOUR_ACCESS_KEY_SECRET"Anda dapat menjalankan perintah berikut dalam sesi saat ini untuk memeriksa apakah variabel lingkungan telah dikonfigurasi.
echo $env:ALIBABA_CLOUD_ACCESS_KEY_ID
echo $env:ALIBABA_CLOUD_ACCESS_KEY_SECRETLinux
Tambahkan variabel lingkungan permanen
Jika Anda ingin variabel lingkungan kunci API tersedia di semua sesi baru untuk pengguna saat ini, tambahkan variabel lingkungan permanen.
Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file
~/.bashrc.# Ganti YOUR_ACCESS_KEY_ID dengan ID AccessKey Anda echo "export ALIBABA_CLOUD_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc # Ganti YOUR_ACCESS_KEY_SECRET dengan rahasia AccessKey Anda echo "export ALIBABA_CLOUD_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrcAnda juga dapat mengedit file
~/.bashrcsecara manual.Jalankan perintah berikut untuk menerapkan perubahan.
source ~/.bashrcBuka jendela terminal baru dan jalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah dikonfigurasi. Kami merekomendasikan agar Anda merestart IDE sebelum menggunakan SDK.
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
Tambahkan variabel lingkungan sementara
Jika Anda hanya ingin menggunakan variabel lingkungan dalam sesi saat ini, tambahkan variabel lingkungan sementara.
Jalankan perintah berikut.
# Ganti YOUR_ACCESS_KEY_ID dengan ID AccessKey Anda export ALIBABA_CLOUD_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID" # Ganti YOUR_ACCESS_KEY_SECRET dengan rahasia AccessKey Anda export ALIBABA_CLOUD_ACCESS_KEY_SECRET="YOUR_ACCESS_KEY_SECRET"Jalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah dikonfigurasi.
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
macOS
Tambahkan variabel lingkungan permanen
Jika Anda ingin variabel lingkungan kunci API tersedia di semua sesi baru untuk pengguna saat ini, tambahkan variabel lingkungan permanen.
Jalankan perintah berikut di terminal untuk memeriksa jenis shell default.
echo $SHELLLakukan langkah-langkah berikut berdasarkan jenis shell default.
Zsh
Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file
~/.zshrc.# Ganti YOUR_ACCESS_KEY_ID dengan ID AccessKey Anda echo "export ALIBABA_CLOUD_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc # Ganti YOUR_ACCESS_KEY_SECRET dengan rahasia AccessKey Anda echo "export ALIBABA_CLOUD_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrcAnda juga dapat mengedit file
~/.zshrcsecara manual.Jalankan perintah berikut untuk menerapkan perubahan.
source ~/.zshrcBuka jendela terminal baru dan jalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah dikonfigurasi.
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
Bash
Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file
~/.bash_profile.# Ganti YOUR_ACCESS_KEY_ID dengan ID AccessKey Anda echo "export ALIBABA_CLOUD_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile # Ganti YOUR_ACCESS_KEY_SECRET dengan rahasia AccessKey Anda echo "export ALIBABA_CLOUD_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profileAnda juga dapat mengedit file
~/.bash_profilesecara manual.Jalankan perintah berikut untuk menerapkan perubahan.
source ~/.bash_profileBuka jendela terminal baru dan jalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah dikonfigurasi.
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
Tambahkan variabel lingkungan sementara
Jika Anda hanya ingin menggunakan variabel lingkungan dalam sesi saat ini, tambahkan variabel lingkungan sementara.
Perintah berikut berlaku untuk Zsh maupun Bash.
Jalankan perintah berikut.
# Ganti YOUR_ACCESS_KEY_ID dengan ID AccessKey Anda export ALIBABA_CLOUD_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID" # Ganti YOUR_ACCESS_KEY_SECRET dengan rahasia AccessKey Anda export ALIBABA_CLOUD_ACCESS_KEY_SECRET="YOUR_ACCESS_KEY_SECRET"Jalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah dikonfigurasi.
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
Setelah mengubah variabel lingkungan sistem, restart atau refresh lingkungan pengembangan Anda, termasuk IDE, antarmuka baris perintah, aplikasi desktop lainnya, dan layanan latar belakang, agar variabel lingkungan terbaru dimuat.
Instal SDK
Topik ini menggunakan Java sebagai contoh. Jika Anda menggunakan bahasa pemrograman lain, lihat Referensi SDK.
Pastikan Java 8 atau versi yang lebih baru telah diinstal.
Anda dapat menginstal SDK dengan mengonfigurasi dependensi Maven. Konfigurasikan informasi berikut dan ganti
the-latest-versiondengan nomor versi terbaru.<dependency> <groupId>com.aliyun</groupId> <artifactId>dysmsapi20180501</artifactId> <!-- Ganti 'the-latest-version' dengan nomor versi terbaru: https://mvnrepository.com/artifact/com.aliyun/dysmsapi20180501 --> <version>the-latest-version</version> </dependency>
Gunakan SDK
1. Inisialisasi klien
Alibaba Cloud SDK mendukung berbagai kredensial akses untuk menginisialisasi klien, seperti pasangan AccessKey dan token Security Token Service (STS). Untuk informasi selengkapnya, lihat Kelola kredensial akses. Topik ini menggunakan pasangan AccessKey untuk menginisialisasi klien sebagai contoh.
package com.aliyun.sample;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.dysmsapi20180501.Client;
public class Sample {
public static Client createClient() throws Exception {
Config config = new Config()
// Konfigurasikan ID AccessKey. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah dikonfigurasi di lingkungan runtime.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// Konfigurasikan rahasia AccessKey. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi di lingkungan runtime.
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Metode System.getenv() mengambil variabel lingkungan sistem. Jangan hardcode informasi AccessKey Anda di dalam metode getenv().
// Konfigurasikan titik akhir.
config.endpoint = "dysmsapi.ap-southeast-1.aliyuncs.com";
return new Client(config);
}
}2. Bangun objek permintaan
Buat permintaan API dan pass parameter sesuai kebutuhan.
Objek permintaan mengikuti konvensi penamaan {nama operasi API}Request. Misalnya, objek permintaan untuk operasi SendMessageToGlobe adalah SendMessageToGlobeRequest.
SendMessageToGlobeRequest sendSmsRequest = new SendMessageToGlobeRequest()
.setTo("<YOUR_VALUE>")
.setMessage("<YOUR_VALUE>");3. Kirim permintaan
Gunakan operasi SendMessageToGlobe untuk menyelesaikan permintaan API.
Objek respons mengikuti konvensi penamaan {nama operasi API}Response. Misalnya, objek respons untuk operasi SendMessageToGlobe adalah SendMessageToGlobeResponse.
SendMessageToGlobeResponse sendSmsResponse = client.sendMessageToGlobe(sendSmsRequest);Anda juga dapat mengonfigurasi parameter permintaan. Untuk informasi selengkapnya, lihat Ajukan permintaan.
Untuk informasi tentang pengaturan timeout dan retry, lihat Mekanisme timeout dan Mekanisme retry.
Untuk informasi tentang jenis pengecualian SDK dan cara menanganinya, lihat Penanganan pengecualian.
Setelah Anda menjalankan kode, output berikut dikembalikan:
{
"headers": {
"date": "Tue, 24 Oct 2023 07:47:17 GMT",
"content-type": "application/json;charset=utf-8",
"content-length": "263",
"connection": "keep-alive",
"keep-alive": "timeout=25",
"access-control-allow-origin": "*",
"access-control-expose-headers": "*",
"x-acs-request-id": "97B1D7B6-F2F6-3A50-97BC-A90B43EC962F",
"x-acs-trace-id": "29c11fe4c778b74774d5f5602f0e7975",
"etag": "2a+mcDRTDkXqx9VF7b6U57Q3"
},
"statusCode": 200,
"body": {
"ResponseCode": "OK",
"NumberDetail": {
"Region": "Taiwan",
"Country": "Taiwan, Province of China",
"Carrier": "FarEasTone"
},
"RequestId": "97B1D7B6-F2F6-3A50-97BC-A90B43EC962F",
"Segments": "1",
"ResponseDescription": "OK",
"To": "88691567****",
"MessageId": "191921698133637273"
}
}Kode kesalahan API dan solusinya
Untuk informasi selengkapnya, lihat Kode kesalahan.
Biaya dan risiko
Komposisi biaya: Short Message Service terutama ditagih berdasarkan jumlah pesan yang dikirim. Harga per pesan bervariasi menurut negara atau wilayah. Untuk harga detail, lihat Penagihan produk .
Risiko utama:
Kebocoran kredensial: Kebocoran pasangan AccessKey membahayakan semua sumber daya di bawah akun Anda. Hal ini dapat menyebabkan penggunaan sumber daya tanpa izin, biaya tak terduga, dan pelanggaran keamanan data. Untuk informasi selengkapnya, lihat Solusi untuk kebocoran pasangan AccessKey.
Kepatuhan konten: Konten yang Anda kirim harus mematuhi hukum dan peraturan di negara atau wilayah tujuan. Jika tidak, pesan mungkin gagal dikirim, atau akun Anda dapat ditangguhkan.
Konten terkait
Untuk melakukan debugging online di Portal OpenAPI, kunjungi OpenAPI Explorer untuk Short Message Service.
Untuk mengirim pesan teks secara batch, gunakan operasi BatchSendMessageToGlobe.
Untuk mempelajari skenario lain dari Short Message Service, lihat Contoh SDK.
Untuk mendapatkan statistik SMS, seperti volume pesan, kunjungi atau Statistik Bisnis.

