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

Short Message Service:Java SDK を使用した API 呼び出し

最終更新日:Feb 12, 2026

Alibaba Cloud Short Message Service (SMS) SDK for Java は、SMS API を呼び出すための Alibaba Cloud 公式 SDK です。開発者がアプリケーションに迅速に SMS 機能を統合できるよう支援します。

インストール

システム要件

  • 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>

認証の設定

ステップ 1:RAM ユーザーの作成と権限付与

重要

Alibaba Cloud アカウント (root ユーザー) は高度な権限を持ちます。セキュリティ上の観点から、API 呼び出しおよび日常的な操作には Resource Access Management (RAM) ユーザーを使用することを推奨します。RAM ユーザーの詳細については、「RAM ユーザーの概要」をご参照ください。

  • RAM ユーザーを作成します。[ユーザーの作成] に移動します。「ユーザー名」を設定し、Access ConfigurationPermanent AccessKey に設定します。はい をクリックします。作成直後に AccessKey ペアを保存してください。

  • RAM ユーザーに権限を付与します: [ユーザー] に移動します。作成した RAM ユーザーを見つけ、Actions をクリックし、次に Attach Policy をクリックします。Policy 検索ボックスに AliyunDysmsFullAccess を入力し、ポリシーを選択して、Grant permissions をクリックします。

説明
  • AliyunDysmsFullAccess:Alibaba Cloud SMS の完全管理権限を付与します。

  • AliyunDysmsReadOnlyAccess:Alibaba Cloud SMS の読み取り専用権限を付与します。

  • カスタムポリシーを作成する場合は、「RAM 権限付与」をご参照ください。

ステップ 2:アクセス認証情報の取得

AccessKey ペア を環境変数に設定します。詳細については、「Linux、macOS、Windows における環境変数の設定」をご参照ください。

説明
  • AccessKey ペアが漏洩しないよう、アプリケーション内にハードコードしないでください。代わりに環境変数を使用します。

  • 本例では、環境変数名として ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET を使用します。

セキュリティに関するベストプラクティス

  • 認証情報を環境変数または Key Management Service (KMS) に保存します。

  • AccessKey ペアを定期的にローテーションします。

  • 最小権限の原則に従います。各 RAM ユーザーには、必要な最小限の権限のみを付与します。

  • 認証情報に関するログ出力を行わないでください。

  • 本番環境では、root アカウントの認証情報ではなく RAM ロールを使用します。

クイックスタート

コード例

このサンプルコードでは、SDK を使用して SendSms 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 シークレットを設定します。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));

        // エンドポイントを設定します。
        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);

        // 応答オブジェクトには、サーバーから返された本文およびヘッダーが含まれます。
        System.out.println(toJSONString(sendSmsResponse));
    }
}

サンプルコードのダウンロード

完全なサンプルプロジェクトをダウンロードして実行することもできます。

  1. SendMessageToGlobe にアクセスします。

  2. 左側の パラメーター タブで、必要なパラメーターを入力します。例:

  • To:88691567****

  • メッセージ: これはテストメッセージです

  1. 右側の SDK サンプルコード タブで、SDK 生成V2.0 に設定し、Java を選択します(必要に応じて同期版または非同期版を選択できます)。**[プロジェクトのダウンロード]** をクリックします。

  2. ダウンロードしたパッケージを展開し、IDE でプロジェクトを読み込みます。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 のバッチ処理機能を利用します。

セキュリティに関する推奨事項

  • API との通信には常に HTTPS を使用します。

  • 電話番号や検証コードなどの機微な情報をログ出力しないでください。

  • 悪意ある入力を防止するため、電話番号のフォーマットを検証します。

  • 長期的な認証情報の代わりに、Alibaba Cloud Security Token Service (STS) の一時認証情報を使用します。

リソース管理

  • 未使用のクライアント接続は速やかにクローズします。

  • 高並列性のリクエストに対しては、スレッドプールサイズを適切に設定します。

  • QPS 制限を超えないよう、API 呼び出し頻度を監視します。

参考

  • GitHub リポジトリ:

  • OpenAPI ドキュメントの参照:

    API を呼び出す前に、API リファレンス(SendMessageToGlobe)を確認し、必須パラメーター、権限、その他の詳細情報を確認してください。サポートされるすべての API の一覧については、「API 概要」をご参照ください。

  • OpenAPI の呼び出し:

    SDK を使用した呼び出しが、OpenAPI を呼び出す最も簡単かつ十分にサポートされた方法です。本トピックでは Java SDK を例として説明しますが、他の言語でも同様のプロセスとなります。詳細については、「Short Message Service SDK」をご参照ください。