Uygulama geliştirme süreçleri genellikle kayıt doğrulama kodları, sipariş güncelleme bildirimleri veya promosyon mesajları gibi amaçlarla kullanıcılara SMS gönderilmesini içerir. Bu konuda, bir SDK entegre ederek ve Alibaba Cloud Kısa Mesaj Hizmeti API'sini çağırarak SMS gönderimini nasıl hızlı, güvenli ve güvenilir bir şekilde otomatikleştirebileceğiniz açıklanmaktadır.
Mimari
SMS API'sinin uçtan uca çağrı akışı; uygulamanızı, Alibaba Cloud SDK'yı, Resource Access Management (RAM) hizmetini ve SMS hizmetini kapsar.
Süreç şu şekildedir: Alibaba Cloud SDK'yı uygulamanıza entegre eder ve RAM kullanarak uygulamanıza SMS izinlerine sahip kimlik bilgileri atarsınız. Uygulamanız bu kimlik bilgilerini kullanarak SMS API'sini çağırır. Alibaba Cloud isteği doğruladıktan ve uyumluluğu kontrol ettikten sonra mesajı Alibaba Cloud SMS Ağ Geçidi'ne iletir; ağ geçidi de SMS'i operatör ağı üzerinden kullanıcının cep telefonuna teslim eder.
Bu kılavuzda, örnek olarak SendMessageToGlobe işlemi kullanılarak SMS API'sinin nasıl çağrılacağı gösterilmektedir. Şunları öğreneceksiniz:
API çağrılarına aşinaysanız doğrudan API referansına bakabilir ve ihtiyacınız olan işlemi çağırabilirsiniz.
API'yi çağırmak için SDK kullanmanızı öneririz. Kendi isteklerinizi oluşturmayı tercih ediyorsanız bkz. V3 istek gövdesi ve imza.
Başlamadan önce
Öğe | Açıklama | Referanslar |
Kullanıcı izinleri | RAM konsolunda, izinlerini görüntülemek için bir RAM kullanıcısının adını tıklayın. API'yi çağıran RAM kullanıcısının gerekli SMS ile ilgili izne sahip olduğundan emin olun:
| |
| RAM konsolunda, bir RAM kullanıcısının adını tıklayın. Kullanıcı ayrıntıları sayfasında, AccessKey sekmesini tıklayarak AccessKey ID değerini görüntüleyin. | |
| AccessKey Secret yalnızca oluşturma sırasında gösterilir. Kaybolursa yeni bir AccessKey çifti oluşturun. | |
Hesap bakiyesi veya paket kotası | Yeterli hesap bakiyeniz veya paket kotanız olduğundan emin olun. Paket kotanızı Resource Package Statistics sayfasında görüntüleyebilir veya hesap bakiyenizi Expenses and Costs konsolunda kontrol edebilirsiniz. |
Kimlik bilgilerini yapılandırın
Adım 1: RAM kullanıcısı oluşturun ve izin verin
Kök hesabınız tam izinlere sahiptir. API çağrıları ve rutin bakı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: Create User sayfasına gidin. Gerekli bilgileri belirtin, Access Configuration için Permanent AccessKey seçeneğini belirleyin ve ardından OK düğmesini tıklayın. Daha sonra kullanmak üzere AccessKey'inizi kaydedin.
RAM Kullanıcısına izin verin: Users sayfasına gidin. Oluşturduğunuz RAM kullanıcısını bulun ve Attach Policy sütununda Actions seçeneğini tıklayın. Policy arama kutusuna AliyunDysmsFullAccess yazın, ilkeyi seçin ve ardından OK düğmesini tıklayın.
AliyunDysmsFullAccess: SMS hizmetini yönetmek için tam izinler sağlar.
AliyunDysmsReadOnlyAccess: SMS hizmetine erişim için salt okunur izinler sağlar.
Ö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. Linux, macOS ve Windows'ta 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.
Adım 3: Ortam değişkenlerini yapılandırın
Windows
Windows'ta Sistem Özellikleri, CMD veya PowerShell kullanarak ortam değişkenlerini yapılandırabilirsiniz.
System properties
Bu yöntem kalıcı ortam değişkenlerini ayarlar.
Sistem değişkenlerini değiştirmek için yönetici ayrıcalıkları gerekir.
Ortam değişkenlerindeki değişiklikler çalışan uygulamaları etkilemez. Yeni değişken ayarlarının uygulanması için açık olan tüm komut satırı arayüzlerini, IDE'leri veya diğer uygulamaları yeniden başlatmanız gerekir.
Windows masaüstünde
Win+Qtuşlarına basın. Arama kutusuna Edit the system environment variables yazın ve System Properties penceresini açmak için bunu seçin.System Properties penceresinde Environment Variables düğmesini tıklayın. System variables bölümünde New düğmesini tıklayın. Variable name alanını
ALIBABA_CLOUD_ACCESS_KEY_IDolarak, Variable value alanını ise AccessKey ID'niz olarak ayarlayın.ALIBABA_CLOUD_ACCESS_KEY_SECRETiçin bu adımları tekrarlayın.Ayarları kaydetmek ve pencereleri kapatmak için üç pencerede de OK düğmesini tıklayın.
-
Bir CMD veya Windows PowerShell penceresi açın ve ortam değişkenlerinin ayarlandığını doğrulamak için aşağıdaki komutları çalıştırın.
-
CMD komutu:
echo %ALIBABA_CLOUD_ACCESS_KEY_ID% echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%Microsoft Windows [Version 10.0.22621.3593] (c) Microsoft Corporation. All rights reserved. C:\Windows\System32>echo %ALIBABA_CLOUD_ACCESS_KEY_ID% LTAI C:\Windows\System32> -
Windows PowerShell komutu:
echo $env:ALIBABA_CLOUD_ACCESS_KEY_ID echo $env:ALIBABA_CLOUD_ACCESS_KEY_SECRETWindows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows PS C:\Windows\system32> echo $env:ALIBABA_CLOUD_ACCESS_KEY_ID LTAIxxx PS C:\Windows\system32>
-
CMD
Permanent
Geçerli kullanıcı için tüm yeni oturumlarda kalan bir ortam değişkeni ayarlamak için şu adımları izleyin.
-
Aşağıdaki komutları CMD'de çalıştırın.
# Replace YOUR_ACCESS_KEY_ID with your AccessKey ID. setx ALIBABA_CLOUD_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID" # Replace YOUR_ACCESS_KEY_SECRET with your AccessKey secret. setx ALIBABA_CLOUD_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET" Yeni bir CMD penceresi açın.
-
Yeni CMD penceresinde ortam değişkenlerinin ayarlandığını doğrulamak için aşağıdaki komutları çalıştırın.
echo %ALIBABA_CLOUD_ACCESS_KEY_ID% echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%
Temporary
Yalnızca geçerli oturum için bir ortam değişkeni ayarlamak amacıyla CMD'de aşağıdaki komutları çalıştırın.
# Replace YOUR_ACCESS_KEY_ID with your AccessKey ID.
set ALIBABA_CLOUD_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID
# Replace YOUR_ACCESS_KEY_SECRET with your AccessKey secret.
set ALIBABA_CLOUD_ACCESS_KEY_SECRET=YOUR_ACCESS_KEY_SECRET
Ortam değişkenlerinin ayarlandığını doğrulamak için geçerli oturumda aşağıdaki komutları çalıştırabilirsiniz.
echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%
PowerShell
Permanent
Geçerli kullanıcı için tüm yeni oturumlarda kalan bir ortam değişkeni ayarlamak için şu adımları izleyin.
-
Aşağıdaki komutları PowerShell'de çalıştırın.
# Replace YOUR_ACCESS_KEY_ID with your AccessKey ID. [Environment]::SetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) # Replace YOUR_ACCESS_KEY_SECRET with your AccessKey secret. [Environment]::SetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User) Yeni bir PowerShell penceresi açın.
-
Yeni PowerShell penceresinde ortam değişkenlerinin ayarlandığını doğrulamak için aşağıdaki komutları çalıştırın.
echo $env:ALIBABA_CLOUD_ACCESS_KEY_ID echo $env:ALIBABA_CLOUD_ACCESS_KEY_SECRET
Temporary
Yalnızca geçerli oturum için bir ortam değişkeni ayarlamak amacıyla PowerShell'de aşağıdaki komutları çalıştırın.
# Replace YOUR_ACCESS_KEY_ID with your AccessKey ID.
$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "YOUR_ACCESS_KEY_ID"
# Replace YOUR_ACCESS_KEY_SECRET with your AccessKey secret.
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "YOUR_ACCESS_KEY_SECRET"
Ortam değişkenlerinin ayarlandığını doğrulamak için geçerli oturumda aşağıdaki komutları çalıştırabilirsiniz.
echo $env:ALIBABA_CLOUD_ACCESS_KEY_ID
echo $env:ALIBABA_CLOUD_ACCESS_KEY_SECRET
Linux
Permanent
Geçerli kullanıcı için tüm yeni oturumlarda kalan bir ortam değişkeni ayarlamak amacıyla değişkeni kabuğunuzun başlangıç dosyasına ekleyin.
-
Ortam değişkeni ayarlarını
~/.bashrcdosyasına eklemek için aşağıdaki komutu çalıştırın.# Replace YOUR_ACCESS_KEY_ID with your AccessKey ID. echo "export ALIBABA_CLOUD_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc # Replace YOUR_ACCESS_KEY_SECRET with your AccessKey secret. echo "export ALIBABA_CLOUD_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc~/.bashrcdosyasını manuel olarak da düzenleyebilirsiniz. -
Değişiklikleri uygulamak için aşağıdaki komutu çalıştırın.
source ~/.bashrc -
Bir terminal penceresini yeniden açın ve ortam değişkenlerinin ayarlandığını doğrulamak için aşağıdaki komutları çalıştırın. SDK'yı kullanmadan önce IDE'nizi yeniden başlatın.
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
Temporary
Yalnızca geçerli oturum için bir ortam değişkeni ayarlamak üzere şu adımları izleyin.
-
Aşağıdaki komutları çalıştırın.
# Replace YOUR_ACCESS_KEY_ID with your AccessKey ID. export ALIBABA_CLOUD_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID" # Replace YOUR_ACCESS_KEY_SECRET with your AccessKey secret. export ALIBABA_CLOUD_ACCESS_KEY_SECRET="YOUR_ACCESS_KEY_SECRET" -
Ortam değişkenlerinin ayarlandığını doğrulamak için aşağıdaki komutları çalıştırın.
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
macOS
Permanent
Geçerli kullanıcı için tüm yeni oturumlarda kalan bir ortam değişkeni ayarlamak amacıyla değişkeni kabuğunuzun başlangıç dosyasına ekleyin.
-
Varsayılan kabuk türünüzü kontrol etmek için bir terminalde aşağıdaki komutu çalıştırın.
echo $SHELL -
Varsayılan kabuk türünüze göre adımları izleyin.
Zsh
-
Ortam değişkeni ayarlarını
~/.zshrcdosyasına eklemek için aşağıdaki komutu çalıştırın.# Replace YOUR_ACCESS_KEY_ID with your AccessKey ID. echo "export ALIBABA_CLOUD_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc # Replace YOUR_ACCESS_KEY_SECRET with your AccessKey secret. echo "export ALIBABA_CLOUD_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc~/.zshrcdosyasını manuel olarak da düzenleyebilirsiniz. -
Değişiklikleri uygulamak için aşağıdaki komutu çalıştırın.
source ~/.zshrc -
Bir terminal penceresini yeniden açın ve ortam değişkenlerinin ayarlandığını doğrulamak için aşağıdaki komutları çalıştırın.
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
Bash
-
Ortam değişkeni ayarlarını
~/.bash_profiledosyasına eklemek için aşağıdaki komutu çalıştırın.# Replace YOUR_ACCESS_KEY_ID with your AccessKey ID. echo "export ALIBABA_CLOUD_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile # Replace YOUR_ACCESS_KEY_SECRET with your AccessKey secret. echo "export ALIBABA_CLOUD_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profile~/.bash_profiledosyasını manuel olarak da düzenleyebilirsiniz. -
Değişiklikleri uygulamak için aşağıdaki komutu çalıştırın.
source ~/.bash_profile -
Bir terminal penceresini yeniden açın ve ortam değişkenlerinin ayarlandığını doğrulamak için aşağıdaki komutları çalıştırın.
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
-
Temporary
Yalnızca geçerli oturum için bir ortam değişkeni ayarlamak üzere şu adımları izleyin.
Aşağıdaki komutlar hem Zsh hem de Bash için çalışır.
-
Aşağıdaki komutları çalıştırın.
# Replace YOUR_ACCESS_KEY_ID with your AccessKey ID. export ALIBABA_CLOUD_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID" # Replace YOUR_ACCESS_KEY_SECRET with your AccessKey secret. export ALIBABA_CLOUD_ACCESS_KEY_SECRET="YOUR_ACCESS_KEY_SECRET" -
Ortam değişkenlerinin ayarlandığını doğrulamak için aşağıdaki komutları çalıştırın.
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
Ortam değişkenlerini değiştirdikten sonra derleme ve çalışma zamanı ortamınızı yeniden başlatın veya yenileyin. Bu işlem, IDE'ler, komut satırı arayüzleri ve arka plan hizmetleri gibi uygulamaların yeni değişkenleri yüklemesini sağlar.
SDK'yı yükleyin
Bu kılavuzda Java için örnekler sunulmaktadır. Diğer diller için bkz. SDK referansı.
-
Java 8 veya daha sonraki bir sürümün yüklü olduğundan emin olun.
Java environment
-
Aşağıdaki Maven bağımlılığını ekleyerek SDK'yı yükleyin.
the-latest-versionifadesini en son sürüm numarasıyla değiştirin.<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>
SDK'yı kullanın
1. İstemciyi başlatın
Alibaba Cloud SDK, AccessKey veya STS Token gibi çeşitli kimlik bilgileriyle istemciyi başlatmayı destekler. Daha fazla bilgi için bkz. Kimlik bilgilerini yönetme. Bu konuda örnek olarak bir AccessKey kullanılmaktadır.
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()
// Configure the AccessKey ID. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is configured in your runtime environment.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// Configure the AccessKey secret. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is configured in your runtime environment.
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// The System.getenv() method retrieves a system environment variable. Do not hard-code your AccessKey credentials in the code.
// Configure the endpoint.
config.endpoint = "dysmsapi.ap-southeast-1.aliyuncs.com";
return new Client(config);
}
}
2. İstek nesnesini oluşturun
API isteğini oluşturun ve parametreleri gereksinimlerinize göre ayarlayın.
İstek nesnesi adlandırma kuralı: {APIName}Request, örneğin, SendMessageToGlobe API'si için istek nesnesi SendMessageToGlobeRequest şeklindedir.
SendMessageToGlobeRequest sendSmsRequest = new SendMessageToGlobeRequest()
.setTo("<YOUR_VALUE>")
.setMessage("<YOUR_VALUE>");
3. İsteği başlatın
Bir API isteği başlatmak için SendMessageToGlobe API'sini kullanın.
Yanıt nesnesi adlandırma kuralı: {API name}Response. Örneğin, SendMessageToGlobe API'si için yanıt nesnesi SendMessageToGlobeResponse şeklindedir.
SendMessageToGlobeResponse sendSmsResponse = client.sendMessageToGlobe(sendSmsRequest);
Diğer istek parametrelerini de yapılandırabilirsiniz. Daha fazla bilgi için bkz. API isteği başlatma.
Zaman aşımı ve yeniden deneme ayarları hakkında bilgi edinmek için bkz. Zaman aşımı süresi yapılandırma ve Yeniden deneme mekanizması yapılandırma.
SDK özel durum türleri ve bunların işlenmesi hakkında bilgi edinmek için bkz. Özel durum işleme.
Code example
Çıktı aşağıdakine benzer:
{
"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"
}
}
API hata kodları
Daha fazla bilgi için bkz. Uluslararası mesajlar için hata kodları.
Maliyetler ve riskler
Maliyet dökümü: SMS, mesaj başına faturalandırılır ve fiyat ülkeye veya bölgeye göre değişir. Ayrıntılı fiyatlandırma için bkz. faturalama.
-
Temel riskler:
Kimlik bilgilerinin sızması: Sızan bir AccessKey, hesabınızdaki tüm kaynakların güvenliğinin tehlikeye girmesine neden olabilir; bu durum beklenmeyen ücretlendirmelere veya fidye taleplerine yol açabilir. Ağır vakalarda kötüye kullanım Alibaba Cloud'a veya diğer kullanıcılara da zarar verebilir. Ayrıntılar için bkz. Sızan AccessKey'leri işleme.
İçerik uyumluluğu: Gönderilen içeriğin hedef ülke veya bölgenin yasalarına ve düzenlemelerine uygun olduğundan emin olmalısınız. Uyumsuzluk mesajların engellenmesine veya hesabın askıya alınmasına neden olabilir.
İlgili içerik
OpenAPI Explorer içinde API çağrılarında hata ayıklayın.
SMS mesajlarını toplu olarak göndermek için BatchSendMessageToGlobe işlemini kullanın.
SDK örneklerinde daha fazla Kısa Mesaj Hizmeti kullanım örneği bulun.
Mesaj istatistiklerini panoda görüntüleyin.