第一种 通过阿里云接口对接
$client = new \GuzzleHttp\Client();//GuzzleHttp如果没有请安装 ? ? ?? ??? ?$baseUrl = 'https://green.cn-shanghai.aliyuncs.com';//阿里云接口域名 ? ? ?? ??? ?$apiUrl = '/green/text/scan';//阿里云接口名 ? ? ?? ??? ?$requestUrl = $baseUrl.$apiUrl; ?? ??? ??? ?$signDate = gmdate ('D, d M Y H:i:s \G\M\T'); ?? ??? ??? ?//生成请求签名 ? ? ?? ??? ?$signature = $this->getSignature($accessKeySecret, $apiUrl, $signDate); ? ? ?? ??? ?//请求的数据 ? ? ?? ??? ?$requestData = $this->requestData(self::oss_host.'test/test.jpeg'); ? ? ?? ??? ?//header头 ? ? ?? ??? ?$header = $this->getHeader($accessKeyId, $signature, $signDate); ? ? ?? ??? ?//发送请求 ? ? ?? ??? ?$queryRequest=$this->queryRequest($requestUrl, $requestData, $header); ? ? ?? ??? ?// echo '调用接口方式内容过滤结果:'; ? ? ?? ??? ?print_r($queryRequest);die;
//生成签名 ? ? function getSignature($accessSecret, $apiUrl, $signDate) ?? ?{ ?? ? ? ?$source = "POST\n"; ?? ? ? ?$source .= "application/json\n"; ?? ? ? ?$source .= "\n"; ?? ? ? ?$source .= "application/json;charset=utf-8\n"; ?? ? ? ?$source .= $signDate."\n"; ?? ? ? ?$source .= "x-acs-region-id:cn-shanghai\n"; ?? ? ? ?$source .= "x-acs-signature-method:HMAC-SHA1\n"; ?? ? ? ?$source .= "x-acs-signature-version:1.0\n"; ?? ? ? ?$source .= "x-acs-version:2018-05-09\n"; ?? ? ? ?$source .= $apiUrl; ?? ? ? ?return base64_encode(hash_hmac('sha1', $source, $accessSecret, true));
?? ?}
// 请求参数 ?? ?function requestData($str) ?? ?{ ?? ? ? ?$arr = json_encode([ ?? ? ? ? ? ?"tasks" => [ ?? ? ? ? ? ? ? ?[ ?? ? ? ? ? ? ? ? ? ?'dataId' => ?uniqid(), ?? ? ? ? ? ? ? ? ? ?'content' => $str ?? ? ? ? ? ? ? ?] ?? ? ? ? ? ?], ?? ? ? ? ? ?"scenes" => ["antispam"] ?? ? ? ?]);
?? ? ? ?return $arr; ?? ?}
// 请求header头 ?? ?function getHeader($accessKey, $signature, $signDate) ?? ?{ ?? ? ? ?return [ ?? ? ? ? ? ?'x-sdk-client' => 'php/2.0.0', ?? ? ? ? ? ?'x-acs-version' => '2018-05-09', ?? ? ? ? ? ?'Date' => $signDate, ?? ? ? ? ? ?'Accept' => 'application/json', ?? ? ? ? ? ?'x-acs-signature-method' => 'HMAC-SHA1', ?? ? ? ? ? ?'x-acs-signature-version' => '1.0', ?? ? ? ? ? ?'x-acs-region-id' => 'cn-shanghai', ?? ? ? ? ? ?'Content-Type' => 'application/json;charset=utf-8', ?? ? ? ? ? ?'Authorization' => 'acs'.' '.$accessKey.':'.$signature, ?? ? ? ?]; ?? ?}
?? ?// 发送post请求 ?? ?function queryRequest($requestUrl, $requestData, $header) ?? ?{ ?? ? ? ?$client = new \GuzzleHttp\Client(); ?? ? ? ?$response = $client->request('POST', $requestUrl,? ?? ? ? ? ? ?[ ?? ? ? ? ? ? ? ?'json' => $requestData, ?? ? ? ? ? ? ? ?'headers' => $header, ?? ? ? ? ? ?]);
?? ? ? ?echo $response->getStatusCode(); // 200 ?? ? ? ?echo $response->getHeaderLine('content-type'); // 'application/json; charset=utf8' ?? ? ? ?echo $response->getBody(); // '{"id": 1420053, "name": "guzzle", ...}' ?? ?}
第二种方式使用阿里云内容安全sdk,通过composer安装
安装完后上面引入
use AlibabaCloud\Client\AlibabaCloud; use AlibabaCloud\Green\Green;
接口中
AlibabaCloud::accessKeyClient($accessKeyId,$accessKeySecret)->regionId('cn-shanghai')->asDefaultClient(); ?? ??? ??? ?$task1 ?= [ ?? ??? ? ? ? ? ?'dataId' => uniqid('', true), ?? ??? ? ? ? ? ?'url' ? ?=> self::oss_host.'test/test.jpeg', ?? ??? ? ? ?]; ?? ??? ? ? ?$result = Green::v20180509()->imageSyncScan() ?? ? ? ? ? ?->body(json_encode(array('tasks' => array($task1), 'scenes' => array('porn'), 'bizType' => '业务场景'))) ?? ? ? ? ? ?->request(); ? ? ? ? ? ? //echo 'sdk方式阿里云oss内容安全审核结果:'; ?? ??? ? ? ?print_r($result->toArray());die;
|