首先我们需要引入腾讯云的包
composer require tencentcloud/tencentcloud-sdk-php
我们首先需要拿到腾讯云的secret_id与secret_key
<?php
class TencentService
{
private $secret_id;
private $secret_key;
private $app_id;
public function __construct()
{
//获取配置
$this->app_id = Env::get('tencent.appid', '');
$this->secret_id = Env::get('tencent.secret_id', '');
$this->secret_key = Env::get('tencent.secret_key', '');
if (empty($this->app_id) || empty($this->secret_id) || empty($this->secret_key)) {
throw new Exception("关键配置为空");
}
}
//文本校验
public function textFiltering($value)
{
$ret = array();
$ret['status'] = 200;
$ret['msg'] = "ok";
$ret['content'] = [];
try {
$cred = new Credential($this->secret_id, $this->secret_key);
$httpProfile = new HttpProfile();
$httpProfile->setEndpoint("tms.tencentcloudapi.com");
$clientProfile = new ClientProfile();
$clientProfile->setHttpProfile($httpProfile);
//ap-shanghai是地域不是固定值
$client = new TmsClient($cred, "ap-shanghai", $clientProfile);
$req = new \TencentCloud\Tms\V20201229\Models\TextModerationRequest();
$params = array(
//内容=>必须是base64格式的文本内容
"Content" => base64_encode($value)
);
//解json
$req->fromJsonString(json_encode($params));
$resp = $client->TextModeration($req);
if (isset($resp->errorCode)) {
throw new Exception($resp->errorCode, $resp->message, $resp->requestId);
} else {
$ret['content'] = $resp->Label;
}
} catch (\Exception $e) {
$ret['status'] = $e->getCode();
$ret['msg'] = $e->getMessage();
}
return $ret;
}
}
然后我们传入对应需要审核的文本即可。腾讯那边会给对应的返回标签
注意事项
- 接口返回枚举值为Normal:正常,Porn:色情,Ads:广告,Illegal:违法,Abuse:谩骂。
- 文本编码前的原文长度不能超过10000个 utf8 编码字符。;