Alibaba Cloud OpenAPI エクスプローラー は、API ドキュメント、API デバッグ、および SDK の例を提供し、API 開発を始めるのに役立ちます。このトピックでは、TypeScript 用 Intelligent Media Management(IMM)SDK をインストールして使用する方法について説明します。
前提条件
AccessKey ペアが作成され、取得されています。詳細については、「AccessKey ペアを作成する」をご参照ください。
OSS がアクティブ化され、バケットが作成され、オブジェクトがバケットにアップロードされています。詳細については、「オブジェクトをアップロードする」をご参照ください。
IMM がアクティブ化されています。詳細については、「IMM をアクティブ化する」をご参照ください。
IMM コンソールでプロジェクトが作成されています。IMM コンソールを使用してプロジェクトを作成する方法の詳細については、「プロジェクトを作成する」をご参照ください。
説明CreateProject オペレーションを呼び出すことによって、プロジェクトを作成することもできます。詳細については、「CreateProject」をご参照ください。
ListProjects オペレーションを呼び出して、特定のリージョンにある既存のプロジェクトをクエリできます。詳細については、「ListProjects」をご参照ください。
SDK のインストール
IMM API V2020-09-30 を使用するには、IMM SDK V2020-09-30 を使用する必要があります。
TypeScript 用 IMM SDK の使用方法の詳細については、「クイックスタート」をご参照ください。
プロジェクトディレクトリを作成し、そのディレクトリに移動します。
次のコマンドを実行して初期化を実行します。
npm initプロンプトに従って構成を完了します。初期化が完了すると、package.json という名前のファイルが作成されます。ファイルの内容の例を以下に示します。
{ "name": "resources", "version": "1.0.0", "description": "", "main": "demo.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" }次のコマンドを実行して、SDK と必要な依存関係をインストールします。
npm install aliyun-sdk npm install --save @alicloud/imm20200930 npm install --save @alicloud/openapi-client npm install --save @alicloud/tea-util npm install --save @alicloud/tea-typescript npm install -g typescript
SDK の使用
次のサンプルコードは、TypeScript 用 IMM SDK V20.10.0 を使用して、中国 (北京) リージョンのプロジェクト内の画像で顔と顔の属性を検出する方法の例を示しています。
demo.ts ファイルを作成し、次の内容をファイルに書き込みます。
import imm20200930, * as $imm20200930 from '@alicloud/imm20200930'; import OpenApi, * as $OpenApi from '@alicloud/openapi-client'; import Util, * as $Util from '@alicloud/tea-util'; import * as $tea from '@alicloud/tea-typescript'; export default class Client { /** * AccessKey ID と AccessKey シークレットを使用してクライアントを初期化します。 * @param accessKeyId * @param accessKeySecret * @return Client * @throws Exception */ static createClient(accessKeyId: string, accessKeySecret: string): imm20200930 { let config = new $OpenApi.Config({ accessKeyId: accessKeyId, accessKeySecret: accessKeySecret, }); // エンドポイントを指定します。 config.endpoint = `imm.cn-beijing.aliyuncs.com`; return new imm20200930(config); } static async main(): Promise<void> { // Alibaba Cloud アカウントの AccessKey ペアには、すべての API オペレーションを呼び出す権限があります。API オペレーションの呼び出しや日常の O&M の実行には、RAM ユーザーの AccessKey ペアを使用することをお勧めします。 // AccessKey ペア (AccessKey ID と AccessKey シークレット) をプロジェクトコードに含めないことをお勧めします。含めると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。 // この例では、AccessKey ペアは環境変数から取得されます。環境変数の構成方法の詳細については、https://www.alibabacloud.com/help/document_detail/2361894.html を参照してください。 const imm_access_key_id = process.env.ALIBABA_CLOUD_ACCESS_KEY_ID; const imm_access_key_secret = process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET; // クライアントを作成します。 let client = Client.createClient(imm_access_key_id, imm_access_key_secret); // API リクエストを作成し、パラメーターを構成します。 let detectImageFacesRequest = new $imm20200930.DetectImageFacesRequest({ // IMM プロジェクトの名前を指定します。 projectName: "immtest", sourceURI: "oss://your-bucket-name/your-path/your-image.jpg" // OSSバケット内の画像のURIを指定します。 }); let runtime = new $Util.RuntimeOptions({ }); try { // レスポンスを出力します。 let response = await client.detectImageFacesWithOptions(detectImageFacesRequest, runtime); console.log(JSON.stringify(response.body)); } catch (error) { // 必要に応じてエラーメッセージを出力します。 Util.assertAsString(error.message); console.log(error); } } } Client.main();次のコマンドを実行して、demo.ts ファイルを demo.js という名前の JavaScript ファイルに変換します。
tsc demo.tsnode demo.jsコマンドを実行します。サンプルレスポンスは以下のとおりです。{ "faces": [ { "attractive": 0.9810000061988831, "beard": "none", "beardConfidence": 0.9990000128746033, "boundary": { "height": 320, "left": 217, "top": 169, "width": 226 }, "emotion": "happiness", "emotionConfidence": 1, "faceQuality": 0.9869999885559082, "figureClusterId": "figure-cluster-id-unavailable", "figureConfidence": 1, "figureId": "92b7ed67-6344-4410-b5ed-****", "figureType": "face", "glasses": "none", "glassesConfidence": 0.9990000128746033, "hat": "none", "hatConfidence": 1, "headPose": { "pitch": -17.742000579833984, "roll": 3.2850000858306885, "yaw": -0.7279999852180481 }, "mask": "none", "maskConfidence": 0.7559999823570251, "mouth": "open", "mouthConfidence": 1, "sharpness": 1, ... } ], "requestId": "5BE08720-554C-566F-A642-****" }