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)