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

Alibaba Cloud SDK:Java 用 Alibaba Cloud SDK V2.0 の統合

最終更新日:Jan 15, 2025

Alibaba Cloud SDK を統合するには、次の手順を実行する必要があります。Alibaba Cloud SDK のインストール、アクセス認証情報の構成、および API オペレーションを呼び出すためのコードの記述です。このトピックでは、Alibaba Cloud SDK V2.0 を統合する方法について説明します。この例では、Short Message Service (SMS) の SendSms オペレーションを呼び出してテキストメッセージを送信するために、Java 用の Alibaba Cloud SDK V2.0 を使用します。

前提条件

Java Development Kit(JDK) 1.8 以降がインストールされていること。

1. Java 用 SDK をインストールする

  1. SDK Center にログオンし、使用する SDK のサービスを選択します。この例では、Short Message Service (SMS) が選択されています。

  2. [ショートメッセージサービス] ページJavaJava (非同期)[すべての言語] セクションで クイックスタートShort Message Service (SMS)image または を選択します。 タブで、ショートメッセージサービス(SMS) SDK のインストール方法を取得します。

2. アクセス認証情報を構成する

Alibaba Cloud サービスの API 操作を呼び出すには、AccessKey ペアSecurity Token Service(STS)トークンなどのアクセス認証情報を構成する必要があります。詳細については、「認証情報」をご参照ください。AccessKey ペアの漏洩を防ぐために、AccessKey ペアを環境変数に記録することができます。その他のセキュリティソリューションについては、「認証情報のセキュリティソリューション」をご参照ください。この例では、ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を構成します。

Linux および macOS で環境変数を構成する

export コマンドを使用して環境変数を構成する

重要

export コマンドを使用して構成された一時的な環境変数は、現在のセッションでのみ有効です。セッションを終了すると、構成された環境変数は無効になります。永続的な環境変数を構成するには、対応するオペレーティングシステムの起動構成ファイルに export コマンドを追加します。

  • AccessKey ID を構成し、Enter キーを押します。

    # <ACCESS_KEY_ID> を AccessKey ID に置き換えます。
    export ALIBABA_CLOUD_ACCESS_KEY_ID=<ACCESS_KEY_ID>
  • AccessKey シークレットを構成し、Enter キーを押します。

    # <ACCESS_KEY_SECRET> を AccessKey シークレットに置き換えます。
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ACCESS_KEY_SECRET>
  • 構成が成功したかどうかを確認します。

    echo $ALIBABA_CLOUD_ACCESS_KEY_ID コマンドを実行します。有効な AccessKey ID が返された場合、環境変数は構成されています。

Windows で環境変数を構成する

GUI を使用する

  • 手順

    Windows 10 で GUI を使用して環境変数を構成する場合、次の手順を実行します。

    Windows デスクトップで、[この PC] を右クリックし、[プロパティ] を選択します。表示されるページで、[システムの詳細設定] をクリックします。[システムのプロパティ] ダイアログボックスの [詳細設定] タブで、[環境変数] をクリックします。[環境変数] ダイアログボックスの [ユーザー環境変数] または [システム環境変数] セクションで、[新規] をクリックします。次に、次の表に示す変数を構成します。

    変数

    AccessKey ID

    • 変数名: ALIBABA_CLOUD_ACCESS_KEY_ID

    • 変数値: LTAI4GDty8ab9W4Y1D****

    AccessKey Secret

    • 変数名: ALIBABA_CLOUD_ACCESS_KEY_SECRET

    • 変数値: IrVTNZNy5yQelTETg0cZML3TQn****

  • 構成が成功したかどうかを確認します。

    Windows デスクトップで、開始Win + R実行OKecho %ALIBABA_CLOUD_ACCESS_KEY_ID%echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET% をクリックするか、 キーを押します。 ダイアログボックスに「cmd」と入力します。次に、 をクリックするか、Enter キーを押します。表示されたページで、 コマンドと コマンドを実行します。有効な AccessKey ペアが返された場合、構成は成功です。

CMD を使用する

  • 手順

    管理者としてコマンドプロンプトウィンドウを開き、次のコマンドを実行して、オペレーティングシステムに環境変数を追加します。

    setx ALIBABA_CLOUD_ACCESS_KEY_ID LTAI4GDty8ab9W4Y1D**** /M
    setx ALIBABA_CLOUD_ACCESS_KEY_SECRET IrVTNZNy5yQelTETg0cZML3TQn**** /M

    /M は、環境変数がシステムレベルであることを示します。ユーザーレベルの環境変数を構成する場合は、このパラメータを使用しないことを選択できます。

  • 構成が成功したかどうかを確認します。

    Windows デスクトップで、開始Win + R実行OKecho %ALIBABA_CLOUD_ACCESS_KEY_ID%echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET% をクリックするか、 キーを押します。 ダイアログボックスに「cmd」と入力します。次に、 をクリックするか、Enter キーを押します。表示されたページで、 コマンドと コマンドを実行します。有効な AccessKey ペアが返された場合、構成は成功です。

Windows PowerShell を使用する

PowerShell で、新しい環境変数を構成します。環境変数は、すべての新しいセッションに適用されます。

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::User)

すべてのユーザーの環境変数を構成します。次のコマンドは、管理者として実行する必要があります。

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::Machine)

一時的な環境変数を構成します。環境変数は、現在のセッションにのみ適用されます。

$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "LTAI4GDty8ab9W4Y1D****"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "IrVTNZNy5yQelTETg0cZML3TQn****"

PowerShell で、Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_ID コマンドと Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_SECRET コマンドを実行します。有効な AccessKey ペアが返された場合、構成は成功です。

3. APIオペレーションを呼び出す

3.1 リクエストクライアントを初期化する

リクエストクライアントを初期化するには、複数の方法を使用できます。詳細については、「アクセス資格情報の管理」をご参照ください。この例では、AccessKey ペアを使用してリクエストクライアントを初期化します。

import com.aliyun.teaopenapi.models.Config;
import com.aliyun.dysmsapi20170525.Client;

public class Sample {
    public static void createClient() throws Exception {
        Config config = new Config()
                // 必須。AccessKey ID を指定します。
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // 必須。AccessKey Secret を指定します。
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        config.endpoint = "dysmsapi.aliyuncs.com";
        // リクエストクライアントを初期化します。
        Client dysmsapiClient = new Client(config);
    }
}

3.2 リクエストオブジェクトを作成し、ランタイム構成を構成する

ほとんどの場合、ビジネス要件に基づいてリクエストオブジェクトを作成し、パラメーターを指定できます。また、ランタイム構成をカスタマイズすることもできます。

import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.teautil.models.RuntimeOptions;

public class Sample {
    public static void createClient() throws Exception {
        // この例では、リクエストクライアントを初期化するコードは省略されています。詳細については、前のセクションをご参照ください。
        // リクエストオブジェクトを作成し、パラメーターを指定します。
        com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
                .setSignName("<YOUR_VALUE>")
                .setTemplateCode("<YOUR_VALUE>")
                .setPhoneNumbers("<YOUR_VALUE>");
        // ランタイム構成オブジェクトを作成します。
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
    }
}

3.3 APIリクエストを開始する

Alibaba Cloud SDK V2.0 では、各 Alibaba Cloud サービスのクライアントに、そのサービスが提供するすべての API 操作が含まれています。さらに、Alibaba Cloud SDK V2.0 は、各 API 操作を定義するための 3 つの方法を提供しています。この設計は、開発の柔軟性と効率性を向上させ、開発者がプロジェクトの要件に基づいて最適な方法で API 操作を呼び出せるようにすることを目的としています。

説明

API オペレーションの名前は小文字です。

  • <API operation>: デフォルトのランタイム構成を使用してリクエストを開始します。ランタイムパラメータを指定する必要はありません。

    import com.aliyun.tea.*;
    
    public class Sample {
    
        /**
         * <b>description</b> :
         * <p>AccessKey ID と AccessKey Secret を使用してクライアントを初期化します。</p>
         * @return Client
         *
         * @throws Exception
         */
        public static com.aliyun.dysmsapi20170525.Client createClient() throws Exception {
            // プロジェクトコードが漏洩すると、AccessKeyペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。次のサンプルコードは参照用としてのみ提供されています。
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                    // 必須。コードランタイム環境で ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が構成されていることを確認します。
                    .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                    // 必須。コードランタイム環境で ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が構成されていることを確認します。
                    .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            config.endpoint = "dysmsapi.aliyuncs.com";
            return new com.aliyun.dysmsapi20170525.Client(config);
        }
    
        public static void main(String[] args_) throws Exception {
            java.util.List<String> args = java.util.Arrays.asList(args_);
            com.aliyun.dysmsapi20170525.Client client = Sample.createClient();
            // リクエストオブジェクトを作成し、パラメータを指定します。
            com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
                    .setSignName("<YOUR_VALUE>")
                    .setTemplateCode("<YOUR_VALUE>")
                    .setPhoneNumbers("<YOUR_VALUE>");
            // ランタイム構成オブジェクトを作成します。
            try {
                // リクエストを開始します。
                com.aliyun.dysmsapi20170525.models.SendSmsResponse resp = client.sendSms(sendSmsRequest);
                com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(resp));
            } catch (TeaException error) {
                // 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、エラーメッセージは参照用にのみ表示されます。
                // エラーメッセージ。
                System.out.println(error.getMessage());
                // トラブルシューティングの情報。
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            } catch (Exception _error) {
                TeaException error = new TeaException(_error.getMessage(), _error);
                // 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、エラーメッセージは参照用にのみ表示されます。
                // エラーメッセージ。
                System.out.println(error.getMessage());
                // トラブルシューティングの情報。
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            }
        }
    }
  • <API operation>WithOptions: カスタムランタイム構成を使用してリクエストを開始します。詳細については、高度な構成をご参照ください。

    import com.aliyun.tea.*;
    
    public class Sample {
    
        /**
         * <b>description</b> :
         * <p>AccessKey ID と AccessKey Secret を使用してクライアントを初期化します。</p>
         * @return Client
         * 
         * @throws Exception
         */
        public static com.aliyun.dysmsapi20170525.Client createClient() throws Exception {
            // プロジェクトコードが漏洩すると、AccessKeyペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。次のサンプルコードは参照用としてのみ提供されています。
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                    // 必須。コードランタイム環境で ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が構成されていることを確認します。
                    .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                    // 必須。コードランタイム環境で ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が構成されていることを確認します。
                    .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            config.endpoint = "dysmsapi.aliyuncs.com";
            return new com.aliyun.dysmsapi20170525.Client(config);
        }
    
        public static void main(String[] args_) throws Exception {
            java.util.List<String> args = java.util.Arrays.asList(args_);
            com.aliyun.dysmsapi20170525.Client client = Sample.createClient();
            // リクエストオブジェクトを作成し、パラメータを指定します。
            com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
                    .setSignName("<YOUR_VALUE>")
                    .setTemplateCode("<YOUR_VALUE>")
                    .setPhoneNumbers("<YOUR_VALUE>");
            // ランタイム構成オブジェクトを作成します。
            com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
            try {
                // リクエストを開始します。
                com.aliyun.dysmsapi20170525.models.SendSmsResponse resp = client.sendSmsWithOptions(sendSmsRequest, runtime);
                com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(resp));
            } catch (TeaException error) {
                // 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、エラーメッセージは参照用にのみ表示されます。
                // エラーメッセージ。
                System.out.println(error.getMessage());
                // トラブルシューティングの情報。
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            } catch (Exception _error) {
                TeaException error = new TeaException(_error.getMessage(), _error);
                // 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、エラーメッセージは参照用にのみ表示されます。
                // エラーメッセージ。
                System.out.println(error.getMessage());
                // トラブルシューティングの情報。
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            }        
        }
    }
  • <API operation>Advance: ファイルのアップロードが必要な API 操作に使用されます。デフォルトでは、ランタイムパラメータを指定する必要があります。次のサンプルコードは、ファイルをアップロードし、API 操作を呼び出してVision Intelligent API(VIAPI)の顔と体の認識機能を使用する方法を示しています。

    <!--    VIAPI の顔と体の認識機能の依存関係。-->
    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>facebody20191230</artifactId>
      <version>5.1.2</version>
    </dependency>
    import com.aliyun.tea.*;
    
    public class Sample {
    
        /**
         * <b>description</b> :
         * <p>AccessKey ID と AccessKey Secret を使用してクライアントを初期化します。</p>
         * @return Client
         * 
         * @throws Exception
         */
        public static com.aliyun.facebody20191230.Client createClient() throws Exception {
            // プロジェクトコードが漏洩すると、AccessKeyペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。次のサンプルコードは参照用としてのみ提供されています。
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                    // 必須。コードランタイム環境で ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が構成されていることを確認します。
                    .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                    // 必須。コードランタイム環境で ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が構成されていることを確認します。
                    .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            config.endpoint = "facebody.cn-shanghai.aliyuncs.com";
            return new com.aliyun.facebody20191230.Client(config);
        }
    
        public static void main(String[] args_) throws Exception {
            java.util.List<String> args = java.util.Arrays.asList(args_);
            com.aliyun.facebody20191230.Client client = Sample.createClient();
            com.aliyun.facebody20191230.models.DetectBodyCountRequest detectBodyCountRequest = new com.aliyun.facebody20191230.models.DetectBodyCountRequest()
                    .setImageURL("<YOUR-FILE-PATH>");
            com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
            try {
                com.aliyun.facebody20191230.models.DetectBodyCountResponse resp = client.detectBodyCountWithOptions(detectBodyCountRequest, runtime);
                com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(resp));
            } catch (TeaException error) {
                // 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、エラーメッセージは参照用にのみ表示されます。
                // エラーメッセージ。
                System.out.println(error.getMessage());
                // トラブルシューティングの情報。
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            } catch (Exception _error) {
                TeaException error = new TeaException(_error.getMessage(), _error);
                // 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、エラーメッセージは参照用にのみ表示されます。
                // エラーメッセージ。
                System.out.println(error.getMessage());
                // トラブルシューティングの情報。
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            }        
        }
    }