API基本資料
簡訊服務所提供的API基本資料參見如下:
本文以傳送簡訊(SendMessageToGlobe)介面為例,引導您完成簡訊服務API調用。您將瞭解到:
如何設定帳號許可權
如何配置本地開發環境
如何調用簡訊服務API
帳號設定
為RAM使用者開通許可權
重要 阿里雲主帳號擁有較高許可權,建議您通過RAM使用者進行API調用和日常營運。有關RAM使用者的更多資訊,請參見RAM使用者概覽。
建立RAM使用者
訪問建立RAM使用者,完成相關名稱設定,並選擇訪問方式為OpenAPI 呼叫訪問,單擊確定後即可完成RAM使用者的建立。建立時會顯示AccessKey資訊,請妥善保管。
為RAM使用者授權
訪問RAM使用者列表,找到您所建立的RAM使用者,單擊操作列的添加許可權。通過文字框搜尋,選擇AliyunDysmsFullAccess,單擊確認新增授權,完成授權操作。
配置開發環境
本文以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_ID
和ALIBABA_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版本請求體&簽名機制。
下一步