すべてのプロダクト
Search
ドキュメントセンター

Intelligent Media Management:IMM SDK for Swift

最終更新日:Mar 29, 2025

Alibaba Cloud [OpenAPI Explorer] は、API ドキュメント、API デバッグ、および SDK の例を提供し、API 開発を始めるのに役立ちます。このトピックでは、Swift 向け Intelligent Media Management (IMM) SDK をインストールして使用する方法について説明します。

前提条件

  • AccessKey ペアが作成され、取得されています。詳細については、「AccessKey ペアを作成する」をご参照ください。

  • OSS がアクティブ化され、バケットが作成され、オブジェクトがバケットにアップロードされています。詳細については、「オブジェクトをアップロードする」をご参照ください。

  • IMM がアクティブ化されています。詳細については、「IMM をアクティブ化する」をご参照ください。

  • IMM コンソールでプロジェクトが作成されています。詳細については、「プロジェクトを作成する」をご参照ください。

    説明
    • CreateProject オペレーションを呼び出して、プロジェクトを作成できます。詳細については、「CreateProject」をご参照ください。

    • ListProjects オペレーションを呼び出して、特定のリージョンにある既存のプロジェクトをクエリできます。詳細については、「ListProjects」をご参照ください。

SDK のインストール

重要

IMM API V2020-09-30 を使用するには、IMM SDK V2020-09-30 をインストールする必要があります。

Swift 向け IMM SDK の使用方法の詳細については、「[クイックスタート]」をご参照ください。

使用方法

次のサンプルコードは、Swift 向け IMM SDK を使用して、中国 (杭州) リージョンに保存されている画像の顔情報を検出します。

説明

次のサンプルコードを使用する場合は、IMM エンドポイントを、IMM プロジェクトが存在するリージョンのエンドポイントに置き換えてください。 IMM プロジェクトと OSS オブジェクトが同じリージョンに存在することを確認してください。

#!/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 {
        // Alibaba Cloud アカウントの AccessKey ペアには、すべての API オペレーションを呼び出す権限があります。 API オペレーションの呼び出しや日常の O&M の実行には、RAM ユーザーの AccessKey ペアを使用することをお勧めします。
        // AccessKey ペア (AccessKey ID と AccessKey シークレット) をプロジェクトコードに含めないことをお勧めします。 そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。
        // この例では、AccessKey ペアは環境変数から取得されます。 環境変数の設定方法については、https://www.alibabacloud.com/help/en/imm/developer-reference/configure-environment-variables をご覧ください。
        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)