全部產品
Search
文件中心

Short Message Service:首次調用API

更新時間:Oct 29, 2024

您可以通過SDK快速整合,調用API從而使用簡訊服務。

API基本資料

簡訊服務所提供的API基本資料參見如下:

介面版本

2018-05-01

介面風格

RPC

服務存取點

(Endpoint)

全域存取點網域名稱 dysmsapi.ap-southeast-1.aliyuncs.com

  • 服務存取點即為您調用簡訊服務API的URL地址。

  • 請參見服務存取點,根據您的使用地區,選擇對應的存取點地址。

說明
  • 如果您已經熟悉如何調用API,可直接查閱API目錄,調用所需介面。

  • 推薦使用SDK整合的方法對API進行調用。如果您希望自訂封裝請求對API進行調用,請參見V3版本請求體&簽名機制

本文以傳送簡訊(SendMessageToGlobe)介面為例,引導您完成簡訊服務API調用。您將瞭解到:

  • 如何設定帳號許可權

  • 如何配置本地開發環境

  • 如何調用簡訊服務API

帳號設定

服務開通

  • 在通過API使用簡訊服務前,請確保您已開通簡訊服務並已完成資質申請,具體操作請參見新手指引

  • 在通過API傳送簡訊前,您還需要完成簡訊簽名、簡訊模板的申請,並等待審核通過。簡訊簽名、簡訊模板的申請可通過控制台或API完成。具體操作請參見新手指引

為RAM使用者開通許可權

重要

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

  1. 建立RAM使用者

    訪問建立RAM使用者,完成相關名稱設定,並選擇訪問方式OpenAPI 呼叫訪問,單擊確定後即可完成RAM使用者的建立。建立時會顯示AccessKey資訊,請妥善保管。

  2. 為RAM使用者授權

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

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

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

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

配置開發環境

本文以Java語言為例,進行後續操作。如果您需要使用其他程式設計語言,請參見SDK參考

配置Java環境

為使用SDK進行簡訊服務API的調用,您的Java版本需高於Java 8。您可以通過在終端運行以下命令,來檢查您的Java環境:

java -version

若您尚未完成Java環境的配置或Java版本低於Java 8,請參見在Windows搭建Java開發環境

配置SDK

您可以通過配置Maven依賴來安裝SDK。

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>dysmsapi20180501</artifactId>
  <version>1.0.8</version>
</dependency>

初始化請求用戶端

阿里雲SDK支援多種訪問憑據用於初始化用戶端,例如AccessKey和STS Token等,更多方式請參見管理訪問憑據。本文以AccessKey初始化用戶端為例,進行後續操作。

配置AccessKey

為避免在代碼中寫入程式碼存取金鑰(AccessKey)而造成泄露,請通過配置環境變數的方式擷取AccessKey。環境變數配置方法,請參見在Linux、macOS和Windows系統配置環境變數

說明

您可以通過RAM控制台,單擊RAM使用者名稱稱,查看AccessKey ID。AccessKey Secret建立後不支援查看,若本地無備份,建議重新建立一對AccessKey ID和AccessKey Secret使用。詳情請參見建立AccessKey

本文以環境變數名ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET為例,進行後續操作。通過環境變數擷取AccessKey的程式碼範例如下:

Config config = new Config()
        // 請確保代碼運行環境配置了相應環境變數
        .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
        .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));

佈建服務存取點

佈建服務存取點程式碼範例如下:

config.endpoint = "dysmsapi.ap-southeast-1.aliyuncs.com";

請根據您的地區填入相應地址,參見服務存取點

調用API

構建API請求

構造API請求並根據您的業務需要傳入參數。

說明

API請求對象命名規則為{API名稱}Request ,例如SendSms介面的請求對象為SendSmsRequest

SendMessageToGlobeRequest sendSmsRequest = new SendMessageToGlobeRequest()
            .setTo("<YOUR_VALUE>")
            .setMessage("<YOUR_VALUE>");

發送API請求

使用SendMessageToGlobe介面完成API請求。

說明

API返回對象命名規則為{API名稱}Response ,例如SendSms介面的返回對象為SendSmsResponse

SendMessageToGlobeResponse sendSmsResponse = client.sendMessageToGlobe(sendSmsRequest);

程式碼範例

完整程式碼範例如下:

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));
    }
}

常見問題

如何自訂封裝HTTP請求,然後使用curl命令或Postman等工具進行API調用?

阿里雲SDK已經封裝了簽名、逾時、重試等機制,我們建議您使用SDK進行整合,降低開發成本。如果您需要自行封裝請求來進行API測試,請參見V3版本請求體&簽名機制

下一步