すべてのプロダクト
Search
ドキュメントセンター

Short Message Service:SMS APIを使い始める

最終更新日:Nov 13, 2024

Alibaba Cloud SMSは、SMS APIの使用に役立つSDKを提供しています。

背景情報

次の表に、SMS APIに関する背景情報を示します。

API バージョン

2018-05-01

スタイル

RPC

Endpoint

グローバルパブリックエンドポイント: dysmsapi.ap-southeast-1.aliyuncs.com.

  • エンドポイントはSMS APIのURLです。

  • ネットワークタイプとリージョンに基づいてエンドポイントを選択します。 詳細については、次をご参照ください: エンドポイント

説明
  • OpenAPI Explorerに精通している場合は、 APIドキュメントとAPI操作を呼び出します。

  • SMS SDKを使用してAPI操作を呼び出すことを推奨します。 カスタムカプセル化リクエストを使用してAPI操作を呼び出す方法については、「リクエスト構文と署名メソッドV3」をご参照ください。

このトピックでは、 SendMessageToGlobe API操作を例として、SMS APIを説明します。 ワークフロー:

  • アカウントに権限を付与する

  • 開発環境のデプロイ

  • SMS APIを使用する

アカウントの設定

SMSを有効にする

  • SMS APIを使用する前に、SMSが有効化され、資格が承認されていることを確認してください。 詳細については、「Alibaba Cloud SMSの使用を開始する」をご参照ください。

  • メッセージを送信する前に、SMS APIまたはコンソールを使用して署名とメッセージテンプレートを送信して承認する必要があります。 詳細については、「Alibaba Cloud SMSの使用を開始する」をご参照ください。

RAM ユーザーへの権限付与

重要

RAMユーザーに権限を付与し、RAMユーザーを使用してAPI呼び出しを行い、毎日のO&Mを実行することを推奨します。RAMユーザーについては、「RAMユーザーの概要」をご参照ください。

  1. RAM ユーザーの作成

    Resource Access Management (RAM) コンソールの [ユーザーの作成] に移動し、RAMユーザー名を指定し、Access ModeパラメーターをOpenAPI Accessに設定して、[OK] をクリックします。 AccessKey情報を記録します。

  2. RAM ユーザーへの権限の付与

    RAMコンソールの [ユーザー] ページに移動し、RAMユーザーを見つけて、[操作] 列の [権限の追加] をクリックします。 表示されるパネルの [ポリシー] セクションで、AliyunDysmsFullAccessポリシーを検索して選択し、[権限の付与] をクリックします。

    説明
    • AliyunDysmsFullAccess: SMSの管理権限を指定します。

    • AliyunDysmsReadOnlyAccess: SMSの読み取り専用権限を指定します。

    カスタムポリシーの作成方法の詳細については、 RAM権限付与を行います。

開発環境のデプロイDeploy a development environment

このトピックでは、例としてJavaを使用します。 他のプログラミング言語でSMS SDKを使用する方法については、「SDKリファレンス」をご参照ください。

Java環境のデプロイ

Javaのバージョンは8以降でなければなりません。 ターミナルで次のコマンドを実行して、Javaのバージョンを確認します。

java -version

Java環境をデプロイしていない場合、またはJavaバージョンが8より前の場合は、「WindowsでのJava開発環境の構築」をご参照ください。

SDKの設定

Maven依存関係を使用してSDKをインストールできます。

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

クライアントの初期化

Alibaba Cloud SDKは、クライアントを初期化するために、AccessKeyペアやSTS (Security Token Service) トークンなどの複数のアクセス資格情報をサポートしています。 詳細については、「アクセス資格情報の管理」をご参照ください。 この例では、AccessKeyペアを使用してクライアントを初期化します。

AccessKey ペアの設定

ハードコーディングによりAccessKeyペアが漏洩しないようにするには、環境変数を設定してAccessKeyペアを取得する必要があります。 環境変数の設定方法の詳細については、「Linux、macOS、およびWindowsでの環境変数の設定」をご参照ください。

説明

RAMユーザーのAccessKey IDを表示するには、RAMコンソールの [ユーザー] ページに移動し、RAMユーザーの名前をクリックします。 AccessKeyシークレットは、作成時にのみ表示および記録できます。 それ以外の場合は、新しいAccessKeyペアを作成する必要があります。 詳細については、「AccessKeyペアの作成」をご参照ください。

この例では、環境変数ALIBABA_CLOUD_ACCESS_KEY_IDおよびALIBABA_CLOUD_ACCESS_KEY_SECRETが使用されます。 サンプルコード:

Config config = new Config()
        // Make sure that the environment variables are configured for code execution.
        .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 name} request形式です。 たとえば、SendSms操作のリクエストオブジェクトはSendSmsRequestです。

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

APIリクエストの送信

を使用します。Use the APIリクエストを送信するSendMessageToGlobe操作。

説明

レスポンスオブジェクトの名前は {API name} 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()
                // Configure the AccessKey ID. Make sure that the environment variable ALIBABA_CLOUD_ACCESS_KEY_ID is configured. 
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // Configure the AccessKey secret. Make sure that the environment variable ALIBABA_CLOUD_ACCESS_KEY_SECRET is configured. 
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));

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

        return new Client(config);
    }

    public static void main(String[] args) throws Exception {
        // Initialize the client
        Client client = Sample.createClient();

        // Construct the request object and specify the request parameters
        SendMessageToGlobeRequest sendSmsRequest = new SendMessageToGlobeRequest()
                .setTo("<YOUR_VALUE>")
                .setMessage("<YOUR_VALUE>");

        // Obtain the response object
        SendMessageToGlobeResponse sendSmsResponse = client.sendMessageToGlobe(sendSmsRequest);

        // Response body and headers
        System.out.println(toJSONString(sendSmsResponse));
    }
}

よくある質問

HTTPリクエストをカプセル化し、curlコマンドまたはPostmanを使用してAPI操作を呼び出すにはどうすればよいですか?

Alibaba Cloud SDKは、署名、タイムアウト、および再試行の設定をカプセル化しています。 開発コストを削減するためにAlibaba Cloud SDKを使用することを推奨します。 APIテストのリクエストをカプセル化する方法については、「リクエスト構文と署名メソッドV3」をご参照ください。

次に何をすべきか