php使用阿里云文本内容检测openapi-sdk-php
文章目录
- 前言
- 一、下载sdk
- 1.1 windows系统安装 composer
- 1.2 使用composer安装阿里云sdk
- 二、新加php文件调用审核接口
- 2.1、创建一个php文件
前言
最近有个非常简单的项目,需要对用户输入的文本进行内容审核,直接使用阿里云接口机审一下就OK了
阿里云文档:https://help.aliyun.com/document_detail/70439.html?spm=a2c4g.92548.0.0.7ea85651aMffox
费用好像是 7.5元/1w次,价格还是很实惠的(虽然这个好像也没啥技术含量)
一、下载sdk
参考:https://help.aliyun.com/document_detail/50180.html?spm=a2c4g.71095.0.0.2d981bfatck0Rt
可以直接去github下载源码,不过用起来很麻烦,推荐使用php工具composer下载自己需要的
1.1 windows系统安装 composer
composer中文网:https://pkg.xyz/#how-to-install-composer
官方推荐使用php命令下载,放在不管用什么办法,搞到composer.phar这个文件就行
下载composer.phar文件后安装下图教程移动到php目录下
如下图所示:
配置全局变量
配置好了,在控制台输入
composer --version
有版本号输出就OK了
1.2 使用composer安装阿里云sdk
先更新一下composer
composer clear-cache
composer update
找个空白目录进入命令行安装sdk
composer require alibabacloud/green
安装成功会有一个vendor文件夹,里面就是需要的代码
二、新加php文件调用审核接口
2.1、创建一个php文件
把官方代码copy进去,我自己稍微做了一点更改
原版:https://help.aliyun.com/document_detail/312070.html?spm=a2c4g.311985.0.0.50ee4924n1ybRC
<?php
require_once 'vendor/autoload.php';
require_once 'vendor/alibabacloud/client/autoload.php';
require_once 'vendor/alibabacloud/green/Green.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;
try {
$_text=Request::Get("text");
if ($_text=='') {
echo "参数不能为空!";
return;
}
/**
* 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
* 常见获取环境变量方式:
* 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
AlibabaCloud::accessKeyClient('【你的key】', '【你的key】')
->timeout(10) // 超时10秒,使用该客户端且没有单独设置的请求都使用此设置。
->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,使用该客户端且没有单独设置的请求都使用此设置。
->regionId('cn-shanghai')
->asDefaultClient();
$task1 = array('dataId' => time(), 'content' => $_text);
//callback、seed:用于回调通知,可选参数。
$response = Green::v20180509()->TextScan()
->timeout(10) // 超时10秒,request超时设置,仅对当前请求有效。
->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,request超时设置,仅对当前请求有效。
->body(json_encode(array('tasks' => array($task1),
'scenes' => 'antispam')))
->request();
print_r(json_encode($response->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;
}
class Request{
/// <summary>
/// 接收传值
/// </summary>
/// <param name="varName">参数名称</param>
/// <returns>参数对应的值</returns>
static public function Get($varName,$isNullReturnNull=false)
{
if(isset($_GET[$varName])) { $_val = $_GET[$varName]; }
else if(isset($_POST[$varName])) { $_val = $_POST[$varName]; }
else {
if($isNullReturnNull){
//if(array_key_exists($varName,$_REQUEST)) { return ""; } //说明存在这个参数
//else{ return null; }
return null;
}
else{ return ""; }
}
return $_val;
}
}
搭一个web服务器请求这个php文件就可以直接是用来
php版本>=7.2