TypeScript SDK

阿里云API调试工具OpenAPI Explore提供OpenAPI文档、API调试和SDK示例,帮助您快速入门API开发。本文介绍如何安装和使用智能媒体管理TypeScript SDK。

前提条件

安装SDK

重要

调用2020-09-30版本的API,需要使用2020-09-30版本的SDK。

使用智能媒体管理TypeScript SDK的操作步骤请参见快速入门

  1. 创建项目目录,并进入该目录。

  2. 执行以下命令初始化。

    npm init
  3. 按照向导提示进行配置。初始化完成后,会自动创建一个package.json文件。其文件内容示例如下:

    {
      "name": "resources",
      "version": "1.0.0",
      "description": "",
      "main": "demo.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "",
      "license": "ISC"
    }
  4. 执行以下命令安装TypeScript SDK和代码所需依赖。

    npm install aliyun-sdk
    npm install --save @alicloud/imm/20200930
    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(北京)地域中检测图片中的人脸以及人脸信息为例,介绍如何使用智能媒体管理TypeScript SDK。

  1. 创建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://help.aliyun.com/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();
  2. 执行如下命令将demo.ts转换为JavaScript代码,转换完生成demo.js文件。

    tsc demo.ts

  3. 执行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-****"
    }