阿里云API调试工具OpenAPI Explore提供OpenAPI文档、API调试和SDK示例,帮助您快速入门API开发。本文介绍如何安装和快速使用智能媒体管理PHP SDK。
前提条件
已创建并获取AccessKey。具体操作,请参见创建AccessKey。
已开通OSS服务、创建存储空间并上传文件到存储空间。具体操作,请参见控制台上传文件。
已开通智能媒体管理服务。具体操作,请参见开通产品。
已通过智能媒体管理控制台创建项目。具体操作,请参见创建项目。
说明您也可以调用API接口创建项目。具体操作,请参见CreateProject - 创建项目。
您可以调用ListProjects - 列出所有项目信息的列表接口列出指定地域下已创建的所有项目信息。
安装SDK
调用2020-09-30版本的API,需要使用2020-09-30版本的SDK。
使用智能媒体管理PHP SDK的操作步骤请参见快速入门。
安装composer
下载安装脚本
composer-setup.php
到当前目录。php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
执行安装过程。
php composer-setup.php
删除安装脚本。
php -r "unlink('composer-setup.php');"
执行
sudo mv composer.phar /usr/local/bin/composer
全局安装,完成后会有composer.phar
文件,运行php composer.phar
就可以查看composer。
安装IMM依赖
执行命令composer require alibabacloud/imm-20200930 4.4.0
。
使用方法
如下以在华东2(北京)地域中检测图片中的人脸及人脸信息为例介绍如何使用智能媒体管理PHP SDK。
创建demo.php文件并写入如下内容。
说明复制使用如下示例代码时请将访问域名换成您的IMM项目所在Region的域名,并且IMM项目和OSS文件Region需要保持一致。
<?php // This file is auto-generated, don't edit it. Thanks. namespace AlibabaCloud\SDK\Sample; use AlibabaCloud\SDK\Imm\V20200930\Imm; use \Exception; use AlibabaCloud\Tea\Exception\TeaError; use AlibabaCloud\Tea\Utils\Utils; use Darabonba\OpenApi\Models\Config; use AlibabaCloud\SDK\Imm\V20200930\Models\DetectImageFacesRequest; use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions; class Sample { /** * 使用AK&SK初始化账号Client * @return Imm Client */ public static function createClient(){ // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/311677.html。 $config = new Config([ // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 "accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 "accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") ]); // Endpoint 请参考 https://api.aliyun.com/product/imm $config->endpoint = "imm.cn-beijing.aliyuncs.com"; return new Imm($config); } /** * @param string[] $args * @return void */ public static function main($args){ $client = self::createClient(); $detectImageFacesRequest = new DetectImageFacesRequest([ "projectName" => "imm-php-sdk-doc-demo", "sourceURI" => "oss://your-bucket-name/your-path/your-image.jpg" ]); $runtime = new RuntimeOptions([]); try { // 复制代码运行请自行打印 API 的返回值 print_r($client->detectImageFacesWithOptions($detectImageFacesRequest, $runtime)); } catch (Exception $error) { if (!($error instanceof TeaError)) { $error = new TeaError([], $error->getMessage(), $error->getCode(), $error); } // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 // 错误 message var_dump($error->message); // 诊断地址 var_dump($error->data["Recommend"]); Utils::assertAsString($error->message); } } } $path = __DIR__ . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php'; if (file_exists($path)) { require_once $path; } Sample::main(array_slice($argv, 1));
执行
php demo.php
命令,控制台输出结果如下。Array ( [Faces] => Array ( [0] => Array ( [Age] => 12 [AgeSD] => 5 [Attractive] => 0.12099999934435 [Beard] => none [BeardConfidence] => 0.99800002574921 [Boundary] => Array ( [Height] => 87 [Left] => 280 [Top] => 36 [Width] => 70 ) [Emotion] => none [EmotionConfidence] => 0.99500000476837 [FaceQuality] => 0.8289999961853 [FigureClusterId] => figure-cluster-id-unavailable [FigureConfidence] => 0.9990000128746 [FigureId] => 3acab8ff-48e7-4647-ac57-b48834db7278 [FigureType] => face [Gender] => male [GenderConfidence] => 0.95099997520447 [Glasses] => none [GlassesConfidence] => 1 [Hat] => hat [HatConfidence] => 0.9879999756813 [HeadPose] => Array ( [Pitch] => -12.309000015259 [Roll] => -11.362000465393 [Yaw] => 3.4430000782013 ) [Mask] => none [MaskConfidence] => 0.7509999871254 [Mouth] => open [MouthConfidence] => 0.56699997186661 [Sharpness] => 0.8870000243187 ) ) [RequestId] => F6D3FE7E-F0D7-0A5B-AE34-7453991DF9F2 )