本文介绍了如何使用阿里云视觉智能开放平台相关服务的PHP SDK,具体包括SDK的获取和安装方法以及SDK代码示例。
阿里云视觉智能开放平台各类目视觉AI能力SDK接入、接口使用或问题咨询等,请通过钉钉群(23109592)加入阿里云视觉智能开放平台咨询群联系我们。
本文档介绍旧版PHP SDK,最低环境要求PHP 5.5。推荐使用新版PHP SDK。
准备工作
在安装和使用阿里云SDK前,确保您已经注册阿里云账号并生成访问密钥(AccessKey)。具体操作,请参见创建AccessKey。
安装Alibaba Cloud SDK for PHP。 具体步骤如下。
下载并安装Composer:
curl -sS https://getcomposer.org/installer | php
。执行Composer命令安装Alibaba Cloud SDK for PHP的最新版本:
php composer.phar require alibabacloud/sdk
。说明该包为全量包,安装之后可以调用平台的所有能力,Packagist相关信息,请参见alibabacloud/sdk,Github相关信息,请参见openapi-sdk-php。如果您只需要某个类目的能力,也可以按照AI类目安装相应类目的包。
在代码中引入Composer自动加载工具:
<?php require __DIR__ . '/vendor/autoload.php';
。
说明PHP: >=5.5
您也可以使用如下命令安装相应AI类目的SDK,例如人体人脸服务:
php composer.phar require alibabacloud/facebody
。具体服务的SDK名称如下:
AI类目
SDK链接
Github链接
人脸人体
文字识别
商品理解
内容审核
图像识别
图像生产
分割抠图
目标检测
视觉搜索
图像分析处理
视频生产
视频理解
视频分割
本产品依赖包只是从Alibaba Cloud SDK for PHP中同步出来的一部分,其命名空间、用法与Alibaba Cloud SDK for PHP一致。如果您不在乎文件体积,建议您安装Alibaba Cloud SDK for PHP并经常更新,以便保持最新、最全的产品支持。您也可以仅安装本产品服务的SDK。
配置环境变量
配置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维,具体操作,请参见创建RAM用户。
请不要将AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
Linux和macOS系统配置方法
在IntelliJ IDEA中打开终端Terminal。
执行以下命令,配置环境变量。
<access_key_id>
需替换为您RAM用户的AccessKey ID,<access_key_secret>
替换为您RAM用户的AccessKey Secret。如果后续需要进行更多权限相关的配置,具体操作请参见使用RAM Policy控制访问权限。export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>
Windows系统配置方法
新建环境变量文件,添加环境变量
ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
,并写入已准备好的AccessKey ID和AccessKey Secret。然后重启Windows系统。本操作以Windows 10为例进行说明。打开文件资源管理器,在此电脑上右键单击属性。
在右侧导航栏,单击高级系统配置。
在系统属性对话框的高级页签下,单击环境变量。
在环境变量对话框中,单击新建(W)。
在弹出的新建系统变量对话框中,添加环境变量
ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
,并写入已准备好的AccessKey ID和AccessKey Secret。重启Windows系统,使配置生效。
代码示例
本文以RecognizeBankCard为例进行说明,SDK示例如下。该方式目前只支持同地域下OSS文件,其他场景请使用新版PHP。
<?php
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Ocr\Ocr;
// Download:https://github.com/aliyun/openapi-sdk-php
// Usage:https://github.com/aliyun/openapi-sdk-php
// 创建AccessKey ID和AccessKey Secret,请参考https://help.aliyun.com/document_detail/175144.html。
// 如果您使用的是RAM用户的AccessKey,还需要为RAM用户授予权限AliyunVIAPIFullAccess,请参考https://help.aliyun.com/document_detail/145025.html。
// 从环境变量读取配置的AccessKey ID和AccessKey Secret。运行代码示例前必须先配置环境变量。
AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'))
// use STS Token
// AlibabaCloud::stsClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'))
->regionId('cn-shanghai')
->asDefaultClient()->options([
]);
try {
$request = Ocr::v20191230()->recognizeBankCard();
$result = $request
->debug(true) // Enable the debug will output detailed information
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
echo $exception->getMessage() . PHP_EOL;
echo $exception->getErrorCode() . PHP_EOL;
echo $exception->getRequestId() . PHP_EOL;
echo $exception->getErrorMessage() . PHP_EOL;
}