本文介紹了如何使用阿里云視覺智能開放平臺相關服務的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,請參考http://bestwisewords.com/document_detail/175144.html。
// 如果您使用的是RAM用戶的AccessKey,還需要為RAM用戶授予權限AliyunVIAPIFullAccess,請參考http://bestwisewords.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;
}