阿里雲API調試工具OpenAPI Explore提供OpenAPI文檔、API調試和SDK樣本,協助您快速入門API開發。本文介紹如何安裝和使用Intelligent Media ManagementTypeScript SDK。
前提條件
已建立並擷取AccessKey。具體操作,請參見建立AccessKey。
已開通OSS服務、建立儲存空間並上傳檔案到儲存空間。具體操作,請參見控制台上傳檔案。
已開通Intelligent Media Management服務。具體操作,請參見開通產品。
已通過Intelligent Media Management控制台建立專案。具體操作,請參見建立專案。
說明您也可以調用API介面建立專案。具體操作,請參見CreateProject - 建立專案。
您可以調用ListProjects - 列出所有專案資訊的列表介面列出指定地區下已建立的所有專案資訊。
安裝SDK
調用2020-09-30版本的API,需要使用2020-09-30版本的SDK。
使用Intelligent Media ManagementTypeScript 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" }執行以下命令安裝TypeScript 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
使用方法
如下以使用20.10.0版本的TypeScript SDK在華東2(北京)地區中檢測圖片中的人臉以及人臉資訊為例,介紹如何使用Intelligent Media ManagementTypeScript SDK。
建立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 Secret初始化帳號Client。 * @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> { // 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。 // 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。 // 本樣本通過從環境變數中讀取AccessKey,來實現API訪問的身分識別驗證。如何配置環境變數,請參見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; // 建立Client。 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" }); let runtime = new $Util.RuntimeOptions({ }); try { // 列印API的傳回值。 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轉換為JavaScript代碼,轉換完產生demo.js檔案。
tsc demo.ts執行
node 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-****" }