Java için Alibaba Cloud SMS SDK, Java uygulamalarından SMS API işlemlerini çağırma sürecini basitleştirir. SDK; mesaj gönderme, imza ve şablon yönetimi, gönderim kayıtlarını sorgulama ve nitelik yönetimi işlevlerini destekler.
SDK; mesaj gönderme, imza ve şablon yönetimi, gönderim kayıtlarını sorgulama ve nitelik yönetimi işlevlerini destekler.
Kurulum
Sistem gereksinimleri
Java sürümü: Java 8 veya üzeri. Java geliştirme ortamını kurmak için bkz. Windows üzerinde Java geliştirme ortamı kurma.
İşletim sistemi: Windows, Linux veya macOS.
Diğer bağımlılıklar: Maven 3.0 veya üzeri.
Maven ile yükleme
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20180501</artifactId>
<!-- Replace 'the-latest-version' with the latest version number: https://mvnrepository.com/artifact/com.aliyun/dysmsapi20180501 -->
<version>the-latest-version</version>
</dependency>
Kimlik doğrulamayı yapılandırın
Adım 1: RAM kullanıcısı oluşturun ve izin verin
Kök hesabınız tüm izinlere sahiptir. API çağrıları ve rutin işletim ile bakım (O&M) işlemleri için bir RAM kullanıcısı kullanın. Daha fazla bilgi için bkz. Genel bakış.
RAM kullanıcısı oluşturun: Kullanıcı Oluştur sayfasına gidin. Gerekli bilgileri belirtin, Access Configuration için Permanent AccessKey seçeneğini belirleyin ve ardından OK öğesine tıklayın. Daha sonra kullanmak üzere AccessKey'inizi kaydedin.
RAM Kullanıcısına izin atayın: Kullanıcılar sayfasına gidin. Oluşturduğunuz RAM kullanıcısını bulun ve Attach Policy sütunundaki Actions öğesine tıklayın. Policy arama kutusuna AliyunDysmsFullAccess yazın, ilgili ilkeyi seçin ve ardından OK öğesine tıklayın.
AliyunDysmsFullAccess*: SMS hizmetini yönetmek için tam izinler verir.
AliyunDysmsReadOnlyAccess: SMS hizmetine erişmek için salt okunur izinler verir.
Özel bir ilke oluşturmak için bkz. RAM yetkilendirmesi.
Adım 2: Erişim kimlik bilgilerini yapılandırın
AccessKey çiftinizi ortam değişkenlerinde saklayın. Bkz. Linux, macOS ve Windows üzerinde ortam değişkenlerini yapılandırma.
AccessKey çiftinizi kod içinde sabit olarak tanımlamayın. Ortam değişkenlerinden alın.
Örnek kod,
ALIBABA_CLOUD_ACCESS_KEY_IDveALIBABA_CLOUD_ACCESS_KEY_SECRETortam değişkenlerini kullanır.
Güvenlik en iyi uygulamaları
Kimlik bilgilerini ortam değişkenleri veya bir anahtar yönetim hizmeti kullanarak saklayın.
AccessKey çiftinizi düzenli aralıklarla döndürün.
RAM Kullanıcılarına yalnızca gerekli minimum izinleri vererek en az ayrıcalık ilkesini uygulayın.
Günlüklerde kimlik bilgisi bilgilerini yazdırmayın.
Üretim ortamlarında kök hesap kimlik bilgileriniz yerine bir RAM Rolü kullanın.
Hızlı başlangıç
Örnek kod
Bu örnekte, bir mesaj göndermek için SMS API'si çağrılır. Yorumlarda belirtildiği gibi yer tutucu değerleri değiştirin.
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()
// Configure your AccessKey ID. Make sure the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is configured.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// Configure your AccessKey secret. Make sure the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is configured.
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Configure the endpoint.
config.endpoint = "dysmsapi.ap-southeast-1.aliyuncs.com";
return new Client(config);
}
public static void main(String[] args) throws Exception {
// Initialize the request client.
Client client = Sample.createClient();
// Create a request object and specify the parameter values.
SendMessageToGlobeRequest sendSmsRequest = new SendMessageToGlobeRequest()
.setTo("<YOUR_VALUE>")
.setMessage("<YOUR_VALUE>");
// Obtain the response object.
SendMessageToGlobeResponse sendSmsResponse = client.sendMessageToGlobe(sendSmsRequest);
// The response includes the body and headers from the server.
System.out.println(toJSONString(sendSmsResponse));
}
}
Örnek kodu indirin
Örnek kodu doğrudan indirin ve çalıştırın.
SendMessageToGlobe sayfasına gidin.
Parametreler sekmesinde gerekli parametreleri belirtin. Örnek değerler:
To: 88691567****
Message: This is a test message.
Sağ taraftaki SDK Örnek Kodu sekmesinde SDK sürümü olarak V2.0 ve dil olarak Java (Java veya Java eşzamansız) seçeneklerini belirleyin. Örnek kodu indirmek için Projeyi İndir öğesine tıklayın.
Paketi çıkarın, projeyi IDE'nizde açın, bağımlılıkların yüklenmesini bekleyin ve
src/main/java/com/aliyun/sample/Sample.javadosyasını açın.
Projeyi çalıştırın
Projeyi çalıştırın. Örnek yanıt:
{
"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"
}
}
En iyi uygulamalar
Performans optimizasyonu
Ek yükü azaltmak için bağlantı havuzu ile HTTP bağlantılarını yeniden kullanın.
Yüksek frekanslı senaryolar için eşzamansız çağrılar kullanın.
Hizmetinizin engellenmesini önlemek için zaman aşımları ayarlayın.
Toplu işlemler için yerleşik toplu işlem özelliğini kullanın.
Güvenlik önerileri
API ile iletişim kurarken her zaman HTTPS kullanın.
Cep telefonu numaraları veya doğrulama kodları gibi hassas verileri günlüklemeyin.
Kötü niyetli girdileri önlemek için kullanıcı tarafından girilen cep telefonu numaralarını doğrulayın.
Uzun vadeli kimlik bilgileri yerine Alibaba Cloud Security Token Service'ten (STS) geçici kimlik bilgilerini tercih edin.
Kaynak yönetimi
Kullanılmayan istemci bağlantılarını kapatın.
Beklenen eşzamanlılık düzeyine uygun olacak şekilde iş parçacığı havuzunu boyutlandırın.
Saniye başına sorgu (QPS) sınırlarını aşmamak için API çağrısı sıklığını izleyin.
Referanslar
-
GitHub depoları:
-
API referansı:
Gerekli parametreler ve izinler için SendMessageToGlobe gibi her işlem için API referansını inceleyin.API'ye genel bakış.
-
API çağırma:
Bir API'yi çağırmanın önerilen yolu SDK'dır. Bu konuda Java örnek olarak kullanılmıştır; diğer diller de aynı kalıbı izler.SMS SDK.