全部產品
Search
文件中心

Short Message Service:Java SDK調用樣本

更新時間:Oct 25, 2024

本文介紹如何使用SDK調用OpenAPI介面,向指定手機號發送一條簡訊。

步驟一:查看OpenAPI文檔

在調用OpenAPI前,建議您先閱讀對應的介面文檔SendMessageToGlobe,瞭解、學習調用該介面所需要的參數及許可權等,更多資訊請參見API概覽

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

重要

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

建立RAM使用者

訪問建立RAM使用者,完成相關名稱設定,並選擇訪問方式OpenAPI 呼叫訪問,單擊確定後即可完成RAM使用者的建立。請及時儲存AccessKey資訊。

為RAM使用者授權

訪問RAM使用者列表,找到您所建立的RAM使用者,單擊操作列的添加許可權。通過文字框搜尋,選擇AliyunDysmsFullAccess,單擊確認新增授權,即可完成授權操作。

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

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

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

步驟三:調用OpenAPI

SDK是最易於整合,且支援度最好的OpenAPI調用方式。本文以Java語言SDK調用OpenAPI,其他語言SDK的用法類似,更多資訊請參見簡訊服務SDK

使用前配置

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

  • 請通過配置Maven依賴,完成SDK的安裝。

    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>dysmsapi20180501</artifactId>
        <version>1.0.8</version>
    </dependency>
  • 請配置環境變數,通過環境變數讀取存取金鑰(AccessKey)。環境變數配置方法,請參見在Linux、macOS和Windows系統配置環境變數

    說明

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

    本文以環境變數名ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET為例,進行後續操作。

程式碼範例

使用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.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 參數輸入樣本值:這是一條測試簡訊

  3. 在右側的SDK樣本頁簽,SDK版本選擇v2.0,語言選擇Java語言,單擊下載完整工程按鈕,下載範例程式碼包。

  4. 解壓後使用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"
  }
}