SDK Short Message Service (SMS) Alibaba Cloud untuk Java adalah SDK resmi untuk memanggil operasi API SMS.
Instalasi
Persyaratan sistem
Versi Java: Pastikan versi Java Anda adalah Java 8 atau yang lebih baru. Untuk informasi tentang cara mengonfigurasi lingkungan Java, lihat Siapkan lingkungan pengembangan Java di Windows.
Sistem operasi: Windows, Linux, atau macOS. Tidak ada persyaratan khusus.
Dependensi lain: Maven 3.0 atau yang lebih baru untuk membangun proyek.
Instal menggunakan Maven
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20180501</artifactId>
<!-- Ganti 'the-latest-version' dengan versi terbaru dari https://mvnrepository.com/artifact/com.aliyun/dysmsapi20180501 -->
<version>the-latest-version</version>
</dependency>Konfigurasi autentikasi
Langkah 1: Buat Pengguna RAM dan berikan izin
Akun Alibaba Cloud Anda memiliki izin yang luas. Kami menyarankan agar Anda menggunakan Pengguna Resource Access Management (RAM) untuk memanggil operasi API dan melakukan operasi serta maintenance (O&M) harian. Untuk informasi selengkapnya tentang Pengguna RAM, lihat Ikhtisar Pengguna RAM.
Buat pengguna RAM: Buka Create User, konfigurasikan informasi pengguna, atur Access Configuration ke Programmatic Access, lalu klik OK untuk membuat pengguna RAM. Simpan Informasi AccessKey.
Berikan izin kepada pengguna RAM: Buka User List dan temukan pengguna RAM yang telah Anda buat. Klik Actions lalu Add Permissions. Di kotak pencarian Policy, masukkan AliyunDysmsFullAccess. Pilih kebijakan ini dan klik OK untuk memberikan izin.
AliyunDysmsFullAccess: Memberikan izin manajemen penuh untuk SMS.
AliyunDysmsReadOnlyAccess: Memberikan izin read-only untuk SMS.
Untuk membuat kebijakan kustom, lihat Informasi otorisasi.
Langkah 2: Dapatkan kredensial akses
Konfigurasikan variabel lingkungan untuk mengambil Pasangan Kunci Akses Anda. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, lihat Konfigurasi variabel lingkungan di Linux, macOS, dan Windows.
Untuk mencegah Pasangan Kunci Akses Anda bocor, jangan hard-code di dalam kode Anda. Sebagai gantinya, ambil Pasangan Kunci Akses Anda dengan mengonfigurasi variabel lingkungan.
Contoh kode dalam topik ini menggunakan
ALIBABA_CLOUD_ACCESS_KEY_IDdanALIBABA_CLOUD_ACCESS_KEY_SECRETsebagai nama variabel lingkungan.
Praktik keamanan terbaik
Simpan kredensial menggunakan variabel lingkungan atau Key Management Service (KMS).
Putar Pasangan Kunci Akses Anda secara berkala.
Ikuti prinsip hak istimewa minimal dan berikan Pengguna RAM hanya izin minimum yang diperlukan.
Jangan mencetak informasi kredensial di log.
Di lingkungan produksi, gunakan Peran RAM alih-alih kredensial Akun Alibaba Cloud.
Mulai cepat
Contoh kode
Kode contoh berikut menunjukkan cara memanggil operasi API untuk mengirim pesan teks. Konfigurasikan parameter sesuai komentar dalam kode.
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 telah diatur di lingkungan runtime Anda.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// Konfigurasikan Rahasia AccessKey. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur di lingkungan runtime Anda.
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Konfigurasikan titik akhir.
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();
// Buat objek permintaan dan atur nilai parameternya.
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));
}
}Unduh kode contoh
Anda juga dapat mengunduh kode contoh dan menjalankannya secara langsung.
Buka SendMessageToGlobe.
Pada tab Parameter Settings di sebelah kiri, tentukan parameter yang diperlukan. Contohnya:
To: 88691567****
Message: This is a test message.
Pada tab SDK Sample di sebelah kanan, atur SDK Version ke v2.0, pilih Java untuk Language (Anda dapat memilih opsi Java atau Java asynchronous), lalu klik Download Complete Project untuk mengunduh paket kode contoh.
Ekstrak paket tersebut dan buka proyek di IDE Anda. Setelah dependensi dimuat, buka file
src/main/java/com/aliyun/sample/Sample.java.
Jalankan proyek
Setelah Anda menjalankan proyek, 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"
}
}Rangkuman praktik terbaik
Optimalisasi performa
Gunakan kolam koneksi untuk menggunakan ulang koneksi HTTP dan mengurangi overhead pembentukan koneksi.
Untuk pemanggilan frekuensi tinggi, pertimbangkan menggunakan pola pemanggilan asinkron.
Atur periode timeout yang sesuai untuk mencegah penantian lama yang dapat memengaruhi performa layanan.
Saat melakukan operasi batch, gunakan kemampuan pemrosesan batch dari API.
Rekomendasi keamanan
Selalu gunakan protokol HTTPS untuk berkomunikasi dengan API.
Jangan mencatat informasi sensitif, seperti nomor telepon dan kode verifikasi, di log.
Validasi format nomor telepon yang diberikan pengguna untuk mencegah input berbahaya.
Gunakan kredensial temporary dari Alibaba Cloud Security Token Service (STS) alih-alih kredensial jangka panjang.
Manajemen sumber daya
Segera tutup koneksi klien yang tidak lagi digunakan.
Jika Anda memiliki banyak permintaan konkuren, konfigurasikan ukuran kolam thread yang sesuai.
Pantau frekuensi pemanggilan API untuk menghindari melebihi batas queries-per-second (QPS).
Referensi
Repositori GitHub:
Tinjau dokumentasi OpenAPI:
Sebelum memanggil operasi API, baca dokumentasi yang sesuai untuk memahami parameter yang diperlukan, izin, dan detail lainnya. Untuk contoh ini, lihat SendMessageToGlobe. Untuk informasi selengkapnya, lihat Ikhtisar API.
Panggil operasi API:
Menggunakan SDK adalah metode yang direkomendasikan untuk memanggil operasi API. Topik ini menggunakan SDK Java sebagai contoh. Prosesnya serupa untuk bahasa lain. Untuk informasi selengkapnya, lihat Short Message Service SDK.