Dalam pengembangan aplikasi, Anda mungkin perlu mengirim kode verifikasi, notifikasi, atau kampanye promosi kepada pengguna melalui pesan seluler. Contohnya termasuk mengirim kode verifikasi untuk pendaftaran pengguna atau notifikasi untuk pembaruan status pesanan. Topik ini menjelaskan cara menggunakan Alibaba Cloud SDK untuk memanggil Layanan Pesan Singkat (SMS) API secara cepat dan aman guna mendukung pengiriman pesan otomatis.
Arsitektur
Pengiriman pesan melibatkan interaksi aman antara aplikasi Anda, Alibaba Cloud SDK, Resource Access Management (RAM), dan SMS.
Proses dimulai ketika seorang pengembang mengintegrasikan Alibaba Cloud SDK ke dalam aplikasi mereka. Untuk memastikan keamanan, RAM digunakan untuk memberikan izin yang diperlukan agar aplikasi dapat mengakses layanan SMS melalui serangkaian kredensial. Dengan kredensial tersebut, aplikasi dapat memulai panggilan ke API SMS. Server Alibaba Cloud mengotentikasi permintaan dan, setelah disetujui, meneruskan pesan ke gateway SMS untuk dikirimkan ke perangkat pengguna melalui jaringan operator.
Panduan ini akan membawa Anda melalui proses memanggil API SMS, menggunakan SendMessageToGlobe sebagai contoh. Anda akan mempelajari cara:
Konfigurasikan kredensial
Buat Pengguna RAM dengan izin untuk mengelola sumber daya SMS, lalu buat Pasangan AccessKey.
Catatan Untuk keamanan, gunakan Pengguna RAM untuk panggilan API dan operasi sehari-hari alih-alih Akun Alibaba Cloud Anda.
Buat dan Otorisasi Pengguna RAM
Buat pengguna RAM dan pasangan AccessKey.
Pergi ke halaman Buat Pengguna, atur informasi pengguna, pilih Using permanent AccessKey to access untuk Access Mode, dan klik OK. Setelah melewati verifikasi keamanan, Pengguna RAM dibuat. Sistem menampilkan ID AccessKey dan Rahasia AccessKey. Simpan mereka dengan aman.
Berikan izin kepada pengguna RAM.
Pergi ke halaman Pengguna, temukan Pengguna RAM yang Anda buat, dan klik Add Permissions di kolom Actions. Cari dan pilih AliyunDysmsFullAccess, lalu klik Grant permissions untuk menyelesaikan otorisasi.
Konfigurasikan variabel lingkungan dengan pasangan AccessKey Pengguna RAM. Topik ini menggunakan nama variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET sebagai contoh.
Catatan Untuk mencegah risiko keamanan dari kredensial yang tertulis langsung dalam kode, gunakan variabel lingkungan untuk menyimpan pasangan AccessKey Anda.
Konfigurasikan Variabel Lingkungan
Windows
Di Windows, Anda dapat mengonfigurasi variabel lingkungan melalui Properti Sistem, Command Prompt (CMD), atau PowerShell.
Properti Sistem
Catatan Variabel lingkungan yang dikonfigurasi dengan cara ini bersifat permanen.
Hak istimewa administrator diperlukan untuk memodifikasi variabel lingkungan sistem.
Mengonfigurasi variabel lingkungan tidak segera memengaruhi jendela perintah terbuka, IDE, atau aplikasi lain yang sedang berjalan. Anda harus memulai ulang program-program ini atau membuka jendela perintah baru agar variabel lingkungan berlaku.
Di desktop Windows, tekan Win+Q, cari Edit properti lingkungan sistem, dan klik untuk membuka jendela System Properties.
Di jendela System Properties, klik Environment Variables. Di bagian System variables, klik New. Masukkan ALIBABA_CLOUD_ACCESS_KEY_ID untuk Variable name dan ID AccessKey Anda untuk Variable value. Ulangi proses untuk mengatur ALIBABA_CLOUD_ACCESS_KEY_SECRET.

Klik OK di masing-masing dari tiga jendela untuk menutup halaman konfigurasi properti sistem. Variabel lingkungan telah dikonfigurasi.
Buka jendela CMD atau PowerShell dan jalankan perintah berikut untuk memeriksa apakah variabel lingkungan diatur dengan benar.
CMD
Tambahkan variabel lingkungan permanen
Untuk membuat variabel lingkungan kunci API tersedia di semua sesi baru untuk pengguna saat ini, ikuti 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 untuk memeriksa apakah variabel lingkungan diatur dengan benar.
echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%
Tambahkan variabel lingkungan sementara
Untuk menggunakan variabel lingkungan hanya di 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_SECRET
Jalankan perintah berikut di sesi saat ini untuk memeriksa apakah variabel lingkungan diatur dengan benar.
echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%
PowerShell
Tambahkan variabel lingkungan permanen
Untuk membuat variabel lingkungan kunci API tersedia di semua sesi baru untuk pengguna saat ini, ikuti 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 diatur dengan benar.
echo $env:ALIBABA_CLOUD_ACCESS_KEY_ID
echo $env:ALIBABA_CLOUD_ACCESS_KEY_SECRET
Tambahkan variabel lingkungan sementara
Untuk menggunakan variabel lingkungan hanya di 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"
Jalankan perintah berikut di sesi saat ini untuk memeriksa apakah variabel lingkungan diatur dengan benar.
echo $env:ALIBABA_CLOUD_ACCESS_KEY_ID
echo $env:ALIBABA_CLOUD_ACCESS_KEY_SECRET
Linux
Tambahkan variabel lingkungan permanen
Untuk membuat 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'" >> ~/.bashrc
Anda juga dapat secara manual mengedit file ~/.bashrc.
Modifikasi Manual
Jalankan perintah berikut untuk membuka file ~/.bashrc.
nano ~/.bashrc
Tambahkan konten berikut ke file tersebut.
# 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"
Di editor nano, tekan Ctrl + X, lalu Y, dan kemudian Enter untuk menyimpan dan menutup file.
Jalankan perintah berikut untuk menerapkan perubahan.
source ~/.bashrc
Buka jendela terminal baru dan jalankan perintah berikut untuk memeriksa apakah variabel lingkungan diatur dengan benar. Mulai ulang IDE dan sesi terminal Anda sebelum menggunakan SDK.
echo $ALIBABA_CLOUD_ACCESS_KEY_ID
echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
Tambahkan variabel lingkungan sementara
Untuk menggunakan variabel lingkungan hanya di 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 dikonfigurasi.
echo $ALIBABA_CLOUD_ACCESS_KEY_ID
echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
macOS
Tambahkan variabel lingkungan permanen
Untuk membuat 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 $SHELL
Ikuti langkah-langkah berdasarkan jenis shell default Anda.
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'" >> ~/.zshrc
Anda juga dapat secara manual mengedit file ~/.zshrc.
Modifikasi Manual
Jalankan perintah berikut untuk membuka file konfigurasi shell.
nano ~/.zshrc
Tambahkan konten berikut ke file konfigurasi.
# 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"
Di editor nano, tekan Ctrl + X, lalu Y, dan kemudian Enter untuk menyimpan dan menutup file.
Jalankan perintah berikut untuk menerapkan perubahan.
source ~/.zshrc
Buka 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_profile
Anda juga dapat secara manual mengedit file ~/.bash_profile.
Modifikasi Manual
Jalankan perintah berikut untuk membuka file konfigurasi shell.
nano ~/.bash_profile
Tambahkan konten berikut ke file konfigurasi.
# 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"
Di editor nano, tekan Ctrl + X, lalu Y, dan kemudian Enter untuk menyimpan dan menutup file.
Jalankan perintah berikut untuk menerapkan perubahan.
source ~/.bash_profile
Buka 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
Untuk menggunakan variabel lingkungan hanya di sesi saat ini, tambahkan variabel lingkungan sementara.
Perintah berikut berlaku untuk Zsh dan 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 Anda memodifikasi variabel lingkungan sistem, mulai ulang aplikasi Anda, termasuk IDE dan sesi terminal, agar perubahan diterapkan.
Instal SDK
Topik ini menggunakan Java sebagai contoh. Jika Anda menggunakan bahasa pemrograman lain, lihat Referensi SDK.
Pastikan Anda telah menginstal Java 8 atau versi yang lebih baru.
Konfigurasikan Lingkungan Java
Periksa lingkungan Java Anda dengan menjalankan perintah berikut di terminal:
java -version
# Jika Anda menggunakan Maven untuk mengelola dan membangun proyek Java Anda, pastikan Maven terinstal dengan benar di lingkungan pengembangan Anda.
mvn --version
Contoh untuk CMD di Windows:

Anda dapat memeriksa versi Java dari baris pertama keluaran. Sebagai contoh, openjdk version "16.0.1" 2021-04-20 menunjukkan bahwa versi Java saat ini adalah 16. Jika lingkungan Anda tidak memiliki Java atau versinya di bawah 8, kunjungi Java Downloads untuk mengunduh dan menginstalnya.
Instal SDK dengan mengonfigurasi dependensi Maven. Ganti the-latest-version dengan 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>
Konfigurasi Maven
Buka file pom.xml dari proyek Maven Anda.
Tambahkan informasi dependensi di atas dalam tag <dependencies>.
Simpan file pom.xml.
Klik kanan nama proyek dan pilih Maven > Reload project untuk memperbarui dependensi. Maven secara otomatis mengunduh dan menambahkan SDK SMS ke proyek Anda.

Gunakan SDK
1. Inisialisasi klien
Alibaba Cloud SDK mendukung berbagai jenis kredensial untuk inisialisasi klien. Untuk metode lainnya, lihat Kelola Kredensial Akses. Topik ini menggunakan pasangan AccessKey untuk menginisialisasi klien.
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 dikonfigurasi di lingkungan runtime.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// Konfigurasikan Rahasia AccessKey. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi di lingkungan runtime.
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Konfigurasikan endpoint.
config.endpoint = "dysmsapi.ap-southeast-1.aliyuncs.com";
return new Client(config);
}
}
2. Bangun objek permintaan
Buat permintaan API dan lewati parameter sesuai dengan kebutuhan bisnis Anda.
Catatan Objek permintaan dinamai dalam format: {API-Name}Request. Sebagai contoh, objek permintaan untuk API SendMessageToGlobe adalah SendMessageToGlobeRequest.
SendMessageToGlobeRequest sendSmsRequest = new SendMessageToGlobeRequest()
.setTo("<YOUR_VALUE>")
.setMessage("<YOUR_VALUE>");
3. Kirim permintaan
Gunakan SendMessageToGlobe untuk menyelesaikan permintaan API.
Catatan Objek respons dinamai dalam format: {API-Name}Response. Sebagai contoh, objek respons untuk API SendMessageToGlobe adalah SendMessageToGlobeResponse.
SendMessageToGlobeResponse sendSmsResponse = client.sendMessageToGlobe(sendSmsRequest);
Contoh kode
Contoh kode lengkap adalah sebagai berikut:
package com.aliyun.sample;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.dysmsapi20180501.Client;
import com.aliyun.dysmsapi20180501.models.SendMessageToGlobeRequest;
import com.aliyun.dysmsapi20180501.models.SendMessageToGlobeResponse;
import static com.aliyun.teautil.Common.toJSONString;
public class Sample {
public static Client createClient() throws Exception {
Config config = new Config()
// Konfigurasikan ID AccessKey. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi di lingkungan runtime.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// Konfigurasikan Rahasia AccessKey. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi di lingkungan runtime.
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Konfigurasikan endpoint.
config.endpoint = "dysmsapi.ap-southeast-1.aliyuncs.com";
return new Client(config);
}
public static void main(String[] args) throws Exception {
// Inisialisasi klien permintaan.
Client client = Sample.createClient();
// Bangun objek permintaan. Masukkan nilai parameter permintaan.
SendMessageToGlobeRequest sendSmsRequest = new SendMessageToGlobeRequest()
.setTo("<YOUR_VALUE>")
.setMessage("<YOUR_VALUE>");
// Dapatkan objek respons.
SendMessageToGlobeResponse sendSmsResponse = client.sendMessageToGlobe(sendSmsRequest);
// Respons mencakup body dan header dari server.
System.out.println(toJSONString(sendSmsResponse));
}
}
Setelah Anda menjalankan kode, keluaran berikut akan 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"
}
}
Referensi
Untuk debugging online melalui portal OpenAPI, kunjungi OpenAPI Explorer.
Untuk mengirim pesan teks dalam batch, gunakan operasi BatchSendMessageToGlobe.
Untuk mempelajari lebih lanjut tentang kasus penggunaan SMS, lihat Contoh SDK.
Untuk mendapatkan data statistik, seperti volume pesan yang dikirim, kunjungi halaman Dasbor.