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 をインストールする
SDK Center にログオンし、使用する SDK のサービスを選択します。この例では、Short Message Service (SMS) が選択されています。
[ショートメッセージサービス] ページJavaJava (非同期)[すべての言語] セクションで クイックスタートShort Message Service (SMS)
または を選択します。 タブで、ショートメッセージサービス(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実行OK
echo %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実行OK
echo %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); } } }