Swift SDK

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

前提条件

安装SDK

重要

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

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

使用方法

如下以在华东1(杭州)地域中检测图片中的人脸及人脸信息为例介绍如何使用智能媒体管理Swift SDK。

说明

复制使用如下示例代码时请将访问域名换成您的IMM项目所在Region的域名,并且IMM项目和OSS文件Region需要保持一致。

#!/usr/bin/env xcrun swift

import Cocoa
import Foundation
import Tea
import AlibabacloudImm20200930
import AlibabacloudOpenApi
import TeaUtils

open class Client {
    public static func createClient(_ accessKeyId: String?, _ accessKeySecret: String?) throws -> AlibabacloudImm20200930.Client {
        var config: AlibabacloudOpenApi.Config = AlibabacloudOpenApi.Config([
            "accessKeyId": accessKeyId as! String,
            "accessKeySecret": accessKeySecret as! String
        ])
        // 填写项目所在地域的IMM服务域名。
        config.endpoint = "imm.cn-hangzhou.aliyuncs.com"
        return AlibabacloudImm20200930.Client(config)
    }

    @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
    public static func main(_ args: [String]?) async throws -> Void {
        // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例通过从环境变量中读取AccessKey,来实现API访问的身份验证。如何配置环境变量,请参见https://help.aliyun.com/document_detail/2361894.html。
        let accessKeyId = ProcessInfo.processInfo.environment["AccessKeyId"]
        let accessKeySecret = ProcessInfo.processInfo.environment["AccessKeySecret"]
        var client: AlibabacloudImm20200930.Client = try Client.createClient(accessKeyId, accessKeySecret)
        var detectImageFacesRequest: AlibabacloudImm20200930.DetectImageFacesRequest = AlibabacloudImm20200930.DetectImageFacesRequest([
            // IMM项目名称。
            "projectName": "immtest",
            // 待检测图片的OSS URI。
            "sourceURI": "oss://test-bucket/test-object.jpg"
        ])
        var runtime: TeaUtils.RuntimeOptions = TeaUtils.RuntimeOptions([:])
        do {
            // 发起请求。
            try await client.detectImageFacesWithOptions(detectImageFacesRequest as! AlibabacloudImm20200930.DetectImageFacesRequest, runtime as! TeaUtils.RuntimeOptions)
        }
        catch {
            if error is Tea.TeaError {
                try TeaUtils.Client.assertAsString(error.message)
            } else {
                throw error
            }
        }
    }
}

Client.main(CommandLine.arguments)