<?php
class TCloud {
public $token="";
public $cloud_id="";
public $folder_id="";
public $zone="";
public $iam_token="";
public $debig=false;
/**
* Инициализация класса
* @param type $token - токен
* @param type $cloud_id - идентификатор облака
* @param type $folder_id - идентификатор папки
* @param type $zone - идентификатор зоны
*/
public function __construct($token,$cloud_id,$folder_id,$zone,$debug=false) {
$this->token=$token;
$this->cloud_id=$cloud_id;
$this->folder_id=$folder_id;
$this->zone=$zone;
$this->debug=$debug;
}
/**
* Получение IAM токена
* Подробнее: https://yandex.cloud/ru/docs/iam/operations/iam-token/create#api_1
* @return bool
*/
public function GetIAMToken(){
$ch = curl_init("https://iam.api.cloud.yandex.net/iam/v1/tokens");
curl_setopt($ch, CURLOPT_VERBOSE, $this->debug);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
$data["yandexPassportOauthToken"]=$this->token;
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($data));
$res=curl_exec($ch);
if (curl_errno($ch)) {
$error_msg = curl_error($ch);
var_dump($res);
var_dump($error_msg);
return false;
}
$res= json_decode($res);
if ($res==null){return false;};
$this->iam_token=$res->iamToken;
return true;
}
/**
* Распознать картинку
* @param type $mimetype - тип входящего файла (JPEG, PNG, PDF)
* @param type $model - режим распозанвания (page)
* @param type $content - контент в формате BASE64
* @param type $languageCodes - языки для распознавания (*), массив
* Подробнее: https://yandex.cloud/ru/docs/vision/quickstart
*/
public function OCR($mimetype="JPEG",$model="page",$content,$languageCodes=["*"]){
$ch = curl_init("https://ocr.api.cloud.yandex.net/ocr/v1/recognizeText");
curl_setopt($ch, CURLOPT_VERBOSE, $this->debug);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: Bearer ".$this->iam_token,
"x-folder-id: ".$this->folder_id,
"x-data-logging-enabled: true"
]);
$data["mimeType"]=$mimetype;
$data["languageCodes"]=$languageCodes;
$data["model"]=$model;
$data["content"]=$content;
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($data));
$res=curl_exec($ch);
if (curl_errno($ch)) {
$error_msg = curl_error($ch);
var_dump($res);
var_dump($error_msg);
die();
}
return $res;
}
}