全部產品
Search
文件中心

Short Message Service:Java SDK調用樣本

更新時間:Feb 05, 2026

阿里雲簡訊服務 SDK for Java 是阿里雲提供的官方Java SDK,用於調用阿里雲簡訊服務API。協助開發人員快速整合簡訊服務到自己的應用中。

安裝

系統要求

  • Java版本:請檢查您的Java版本是否高於Java 8。Java環境配置的方法,請參見在Windows搭建Java開發環境

  • 作業系統:Windows/Linux/macOS(無特殊要求)。

  • 其他依賴:Maven 3.0+(用於構建專案)。

使用 Maven 安裝

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>dysmsapi20180501</artifactId>
    <!-- 請將 'the-latest-version' 替換為最新版本號碼:https://mvnrepository.com/artifact/com.aliyun/dysmsapi20180501 -->
  <version>the-latest-version</version>
</dependency>

認證配置

步驟一:建立RAM使用者並完成授權

重要

阿里雲主帳號擁有較高許可權,建議您通過RAM使用者進行API調用和日常營運。有關RAM使用者的更多資訊,請參見RAM使用者概覽

  • 建立RAM使用者:訪問建立RAM使用者,完成相關名稱設定,並選擇訪問配置使用永久 AccessKey 訪問,單擊確定後即可完成RAM使用者的建立。請及時儲存AccessKey資訊。

  • 為RAM使用者授權:訪問RAM使用者列表,找到您所建立的RAM使用者,單擊操作列的新增授權。在權限原則文本搜尋方塊中輸入AliyunDysmsFullAccess後選中此策略,單擊確認新增授權,即可完成授權操作。

說明
  • AliyunDysmsFullAccess管理簡訊服務的許可權。

  • AliyunDysmsReadOnlyAccess:唯讀訪問簡訊服務的許可權。

  • 如果您需要建立自訂許可權,請參見授權資訊

步驟二:擷取訪問憑證

請配置環境變數,通過環境變數讀取存取金鑰(AccessKey)。環境變數配置方法,請參見在Linux、macOS和Windows系統配置環境變數

說明
  • 為避免在代碼中寫入程式碼AccessKey而造成泄露,請通過配置環境變數的方式,來擷取AccessKey。

  • 本文程式碼範例以環境變數名ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET為例,進行後續操作。

安全最佳實務

  • 使用環境變數或Key Management Service儲存憑證。

  • 定期輪換存取金鑰。

  • 遵循最小許可權原則,為RAM使用者指派最小必要許可權。

  • 不要在日誌中列印憑證資訊。

  • 在生產環境中使用RAM角色而非主帳號憑證。

快速開始

程式碼範例

使用SDK調用傳送簡訊API的程式碼範例如下,請根據注釋完成參數填寫。

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()
                // 配置 AccessKey ID,請確保代碼運行環境設定了環境變數 ALIBABA_CLOUD_ACCESS_KEY_ID。
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // 配置 AccessKey Secret,請確保代碼運行環境設定了環境變數 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));

        // 配置 Endpoint
        config.endpoint = "dysmsapi.ap-southeast-1.aliyuncs.com";

        return new Client(config);
    }

    public static void main(String[] args) throws Exception {
        // 初始化請求用戶端
        Client client = Sample.createClient();

        // 構造請求對象,請填入請求參數值
        SendMessageToGlobeRequest sendSmsRequest = new SendMessageToGlobeRequest()
                .setTo("<YOUR_VALUE>")
                .setMessage("<YOUR_VALUE>");

        // 擷取響應對象
        SendMessageToGlobeResponse sendSmsResponse = client.sendMessageToGlobe(sendSmsRequest);

        // 響應包含服務端響應的 body 和 headers
        System.out.println(toJSONString(sendSmsResponse));
    }
}

下載範例程式碼

也可以下載範例程式碼,直接運行。

  1. 訪問SendMessageToGlobe

  2. 在左側的參數配置頁簽,填寫需要的參數資訊,填寫樣本如下:

  • To 參數輸入樣本值:88691567****

  • Message 參數輸入樣本值:這是一條測試簡訊

  1. 在右側的SDK樣本頁簽,SDK版本選擇v2.0,語言選擇Java語言(按需選擇Java和Java非同步),單擊下載完整工程按鈕,下載範例程式碼包。

  2. 解壓後使用IDE附加元件目,待相關依賴載入完畢後,開啟 src/main/java/com/aliyun/sample/Sample.java

運行專案

專案運行後可查看到輸出,本樣本中的返回內容如下:

{
  "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"
  }
}

最佳實務總結

效能最佳化

  • 使用串連池複用HTTP串連,減少串連建立開銷。

  • 對於高頻調用,考慮使用非同步呼叫模式。

  • 合理設定逾時時間,避免長時間等待影響業務效能。

  • 大量操作時,充分利用API的批量處理能力。

安全建議

  • 始終使用HTTPS協議與API通訊。

  • 敏感資訊(如手機號、驗證碼)不要記錄在日誌中。

  • 對使用者輸入的手機號進行格式驗證,防止惡意輸入。

  • 使用阿里雲提供的STS臨時憑證替代長期憑證。

資源管理

  • 及時關閉不再使用的用戶端串連。

  • 對於大量並發請求,合理配置線程池大小。

  • 監控API調用頻率,避免超出QPS限制。

相關文檔