すべてのプロダクト
Search
ドキュメントセンター

Content Moderation:テキスト審査 2.0 PLUS SDK 統合ガイド

最終更新日:Oct 25, 2025

このトピックでは、テキスト審査 2.0 PLUS サービス SDK を統合する方法について説明します。

ステップ 1: サービスをアクティブ化する

サービスのアクティブ化ページにアクセスして、テキスト審査 2.0 サービスをアクティブ化します。

テキスト 2.0 サービスをアクティブ化すると、デフォルトの課金方法は従量課金になります。料金は、日単位の使用量に基づいて請求されます。サービスを使用しない場合、料金は請求されません。API の使用を開始すると、システムは使用量に基づいて自動的に請求します。

ステップ 2: RAM ユーザーに権限を付与する

SDK または API を呼び出す前に、Resource Access Management (RAM) ユーザーに権限を付与する必要があります。Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアを作成できます。Alibaba Cloud API を呼び出すときは、ID 認証に AccessKey を使用する必要があります。AccessKey の取得方法の詳細については、「AccessKey の取得」をご参照ください。

手順

  1. RAM 管理者として RAM コンソールにログインします。

  2. RAM ユーザーを作成します。

    詳細については、「RAM ユーザーの作成」をご参照ください。

  3. RAM ユーザーに AliyunYundunGreenWebFullAccess システムポリシーを付与します。

    詳細については、「RAM ユーザーへの権限付与」をご参照ください。

    上記の手順を完了すると、RAM ユーザーとして Content Moderation API を呼び出すことができます。

ステップ 3: SDK のインストールと統合

現在、統合でサポートされているリージョンは次のとおりです:

リージョン

パブリックエンドポイント

VPC エンドポイント

サポートされているサービス

シンガポール

green-cip.ap-southeast-1.aliyuncs.com

green-cip-vpc.ap-southeast-1.aliyuncs.com

comment_multilingual_pro_global

英国 (ロンドン)

https://green-cip.eu-west-1.aliyuncs.com

利用不可

米国 (バージニア)

green-cip.us-east-1.aliyuncs.com

green-cip-vpc.us-east-1.aliyuncs.com

米国 (シリコンバレー)

green-cip.us-west-1.aliyuncs.com

利用不可

ドイツ (フランクフルト)

green-cip.eu-central-1.aliyuncs.com

利用不可

説明

他のプログラミング言語の SDK サンプルコードが必要な場合は、OpenAPI Explorer オンラインデバッグツールを使用して API 操作をデバッグできます。このツールは、対応する API 操作の SDK サンプルコードを自動的に生成します。

Alibaba Cloud SDK コードでは、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を定義することで、デフォルトのアクセス資格情報を作成できます。Alibaba Cloud サービスの API 操作を呼び出すと、システムは資格情報に直接アクセスし、AccessKey ペアを読み取り、自動的に認証を完了します。SDK サンプルコードを使用する前に、環境変数を設定する必要があります。詳細については、「資格情報の設定」をご参照ください。

SDK には 2 つのサービスバージョンがあります。このページで説明されている PLUS サービスを直接統合することをお勧めします。以前に一般サービスを統合した場合は、「テキスト審査拡張 2.0 一般サービス SDK と統合ガイド」をご参照ください。

テキスト審査 2.0 PLUS サービス

この SDK は、次の API 操作に対応しています: テキスト審査拡張 2.0 多言語 PLUS サービス

Java SDK

Java 1.8 以降のバージョンがサポートされています。

ソースコードについては、「Java SDK ソースコード」または「Java SDK ソースコード (OSS パス)」をご参照ください。

Maven プロジェクトで SDK を使用するには、pom.xml ファイルに次の依存関係を追加します。

1. dependencies セクションに次の依存関係を追加します。

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>green20220302</artifactId>
  <version>2.2.11</version>
</dependency>

2. 統合用の Java SDK コード例。

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.green20220302.Client;
import com.aliyun.green20220302.models.TextModerationPlusRequest;
import com.aliyun.green20220302.models.TextModerationPlusResponse;
import com.aliyun.green20220302.models.TextModerationPlusResponseBody;
import com.aliyun.teaopenapi.models.Config;


public class TextModerationPlusDemo {

    public static void main(String[] args) throws Exception {
        Config config = new Config();
        /**
         * Alibaba Cloud アカウントの AccessKey は、すべての API 操作に対する権限を持っています。API アクセスに Alibaba Cloud アカウントの AccessKey を使用すると、リスクが高くなります。API アクセスや O&M には RAM ユーザーを使用することをお勧めします。
         * 環境変数を取得する一般的な方法:
         * 方法 1:
         *     RAM ユーザーの AccessKey ID を取得する: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
         *     RAM ユーザーの AccessKey シークレットを取得する: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
         * 方法 2:
         *     RAM ユーザーの AccessKey ID を取得する: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
         *     RAM ユーザーの AccessKey シークレットを取得する: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
         */
        config.setAccessKeyId("環境変数から RAM ユーザーの AccessKey ID を取得することをお勧めします");
        config.setAccessKeySecret("環境変数から RAM ユーザーの AccessKey シークレットを取得することをお勧めします");
        //必要に応じてリージョンとエンドポイントを変更します
        config.setRegionId("ap-southeast-1");
        config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com");
        //読み取りタイムアウト期間 (ミリ秒)。
        config.setReadTimeout(6000);
        //接続タイムアウト期間 (ミリ秒)。
        config.setConnectTimeout(3000);
        //HTTP プロキシを設定します。
        //config.setHttpProxy("http://xx.xx.xx.xx:xxxx");
        //HTTPS プロキシを設定します。
        //config.setHttpsProxy("https://xx.xx.xx.xx:xxxx");
        Client client = new Client(config);

        JSONObject serviceParameters = new JSONObject();
        serviceParameters.put("content", "テストテキストコンテンツ");

        TextModerationPlusRequest textModerationPlusRequest = new TextModerationPlusRequest();
        // 検出タイプ
        textModerationPlusRequest.setService("comment_multilingual_pro_global");
        textModerationPlusRequest.setServiceParameters(serviceParameters.toJSONString());

        try {
            TextModerationPlusResponse response = client.textModerationPlus(textModerationPlusRequest);
            if (response.getStatusCode() == 200) {
                TextModerationPlusResponseBody result = response.getBody();
                System.out.println(JSON.toJSONString(result));
                System.out.println("requestId = " + result.getRequestId());
                System.out.println("code = " + result.getCode());
                System.out.println("msg = " + result.getMessage());
                Integer code = result.getCode();
                if (200 == code) {
                    TextModerationPlusResponseBody.TextModerationPlusResponseBodyData data = result.getData();
                    System.out.println(JSON.toJSONString(data, true));
                } else {
                    System.out.println("text moderation not success. code:" + code);
                }
            } else {
                System.out.println("response not success. status:" + response.getStatusCode());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Python SDK

Python 3.6 以降のバージョンがサポートされています。

ソースコードについては、「Python SDK ソースコード」をご参照ください。

1. 次のコマンドを実行して、依存関係をインポートします。

pip install alibabacloud_green20220302==2.2.11

2. 統合用の Python SDK コード例。

# coding=utf-8
# python version >= 3.6
from alibabacloud_green20220302.client import Client
from alibabacloud_green20220302 import models
from alibabacloud_tea_openapi.models import Config
import json

config = Config(
    # Alibaba Cloud アカウントの AccessKey は、すべての API 操作に対する権限を持っています。API アクセスに Alibaba Cloud アカウントの AccessKey を使用すると、リスクが高くなります。API アクセスや O&M には RAM ユーザーを使用することをお勧めします。
    # AccessKey ID と AccessKey シークレットをコードに保存しないことを強くお勧めします。そうしないと、AccessKey が漏洩し、アカウントのすべてのリソースのセキュリティが脅かされる可能性があります。
    # 環境変数を取得する一般的な方法:
    # RAM ユーザーの AccessKey ID を取得する: os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
    # RAM ユーザーの AccessKey シークレットを取得する: os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
    access_key_id='環境変数から RAM ユーザーの AccessKey ID を取得することをお勧めします',
    access_key_secret='環境変数から RAM ユーザーの AccessKey シークレットを取得することをお勧めします',
    # 接続タイムアウト期間 (ミリ秒)
    connect_timeout=10000,
    # 読み取りタイムアウト期間 (ミリ秒)
    read_timeout=3000,
    region_id='ap-southeast-1',
    endpoint='green-cip.ap-southeast-1.aliyuncs.com'
)

clt = Client(config)

serviceParameters = {
    'content': 'テストテキストコンテンツ'
}
textModerationPlusRequest = models.TextModerationPlusRequest(
    # 検出タイプ
    service='comment_multilingual_pro_global',
    service_parameters=json.dumps(serviceParameters)
)

try:
    response = clt.text_moderation_plus(textModerationPlusRequest)
    if response.status_code == 200:
        # 呼び出し成功
        result = response.body
        print('response success. result:{}'.format(result))
    else:
        print('response not success. status:{} ,result:{}'.format(response.status_code, response))
except Exception as err:
    print(err)

PHP SDK

PHP 5.6 以降のバージョンがサポートされています。

ソースコードについては、「PHP SDK ソースコード」をご参照ください。

1. 次のコマンドを実行して、依存関係をインポートします。

composer require alibabacloud/green-20220302 2.2.10

2. 統合用の PHP SDK コード例。

<?php
require('vendor/autoload.php');

use AlibabaCloud\SDK\Green\V20220302\Models\TextModerationPlusRequest;
use AlibabaCloud\Tea\Exception\TeaUnableRetryError;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use AlibabaCloud\SDK\Green\V20220302\Green;

$config = new Config([
    /**
     * Alibaba Cloud アカウントの AccessKey は、すべての API 操作に対する権限を持っています。API アクセスに Alibaba Cloud アカウントの AccessKey を使用すると、リスクが高くなります。API アクセスや O&M には RAM ユーザーを使用することをお勧めします。
     * AccessKey ID と AccessKey シークレットをコードに保存しないことを強くお勧めします。そうしないと、AccessKey が漏洩し、アカウントのすべてのリソースのセキュリティが脅かされる可能性があります。
     * 環境変数を取得する一般的な方法:
     * RAM ユーザーの AccessKey ID を取得する: getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * RAM ユーザーの AccessKey シークレットを取得する: getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    "accessKeyId" => '環境変数から RAM ユーザーの AccessKey ID を取得することをお勧めします',
    "accessKeySecret" => '環境変数から RAM ユーザーの AccessKey シークレットを取得することをお勧めします',
    // HTTP プロキシを設定します。
    // "httpProxy" => "http://10.10.xx.xx:xxxx",
    // HTTPS プロキシを設定します。
    // "httpsProxy" => "https://10.10.xx.xx:xxxx",
    "endpoint" => "green-cip.ap-southeast-1.aliyuncs.com",
    "regionId" => "ap-southeast-1"

]);
// 注: インスタンス化されたクライアントをできるだけ再利用して、接続の繰り返し確立を避け、検出パフォーマンスを向上させます。
$client = new Green($config);

$request = new TextModerationPlusRequest();
$request->service = "comment_multilingual_pro_global";
$serviceParameters = array("content" => "テストコンテンツ");

$request->serviceParameters = json_encode($serviceParameters);

$runtime = new RuntimeOptions();
$runtime->readTimeout = 6000;
$runtime->connectTimeout = 3000;

try {
    $response = $client->textModerationPlusWithOptions($request, $runtime);
    print_r($response->body);
    if (200 != $response->statusCode) {
        print_r("response not success. code:" . $response->statusCode);
        return;
    }
    $body = $response->body;
    print_r("requestId = " . $body->requestId . "\n");
    print_r("code = " . $body->code . "\n");
    print_r("message = " . $body->message . "\n");
    if (200 != $body->code) {
        print_r("text moderation not success. code:" . $body->code);
    }
    $data = $body->data;
    print_r("data = " . json_encode($data));
} catch (TeaUnableRetryError $e) {
    var_dump($e->getMessage());
    var_dump($e->getErrorInfo());
    var_dump($e->getLastException());
    var_dump($e->getLastRequest());
}

Go SDK

1. 次のコマンドを実行して、依存関係をインポートします。

go git clone --branch v2.2.11 github.com/alibabacloud-go/green-20220302/v2

2. 統合用の Go SDK コード例。

package main

import (
	"encoding/json"
	"fmt"
	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
	green20220302 "github.com/alibabacloud-go/green-20220302/v2/client"
	util "github.com/alibabacloud-go/tea-utils/v2/service"
	"github.com/alibabacloud-go/tea/tea"
	"net/http"
)

func main() {
	// コードが漏洩すると、AccessKey が漏洩し、アカウントのすべてのリソースのセキュリティが脅かされる可能性があります。次のコードは参照用です。より安全な STS アプローチを使用することをお勧めします。
	config := &openapi.Config{
		/**
		 * Alibaba Cloud アカウントの AccessKey は、すべての API 操作に対する権限を持っています。API アクセスに Alibaba Cloud アカウントの AccessKey を使用すると、リスクが高くなります。API アクセスや O&M には RAM ユーザーを使用することをお勧めします。
		 * AccessKey ID と AccessKey シークレットをコードに保存しないことを強くお勧めします。そうしないと、AccessKey が漏洩し、アカウントのすべてのリソースのセキュリティが脅かされる可能性があります。
		 * 環境変数を取得する一般的な方法:
		 * RAM ユーザーの AccessKey ID を取得する: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
		 * RAM ユーザーの AccessKey シークレットを取得する: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
		 */
		AccessKeyId: tea.String("環境変数から RAM ユーザーの AccessKey ID を取得することをお勧めします"),
		AccessKeySecret: tea.String("環境変数から RAM ユーザーの AccessKey シークレットを取得することをお勧めします"),
		// HTTP プロキシを設定します。
		// HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"),
		// HTTPS プロキシを設定します。
		// HttpsProxy: tea.String("https://username:password@xxx.xxx.xxx.xxx:9999"),
		RegionId: tea.String("ap-southeast-1"),
		Endpoint: tea.String("green-cip.ap-southeast-1.aliyuncs.com"),
		/**
		 * タイムアウト期間を設定します。サーバー側のエンドツーエンドの処理タイムアウト期間は 10 秒です。それに応じてタイムアウト期間を設定してください。
		 * ReadTimeout をサーバー側の処理に必要な時間より短い値に設定すると、プログラムは ReadTimeout 例外を受け取ります。
		 */
		ConnectTimeout: tea.Int(3000),
		ReadTimeout: tea.Int(6000),
	}
	client, _err := green20220302.NewClient(config)
	if _err != nil {
		panic(_err)
	}

	// RuntimeObject インスタンスを作成し、実行時パラメーターを設定します。
	runtime := &util.RuntimeOptions{}
	runtime.ReadTimeout = tea.Int(10000)
	runtime.ConnectTimeout = tea.Int(10000)

	serviceParameters, _ := json.Marshal(
		map[string]interface{}{
			"content": "テストコンテンツ",
		},
	)
	request := green20220302.TextModerationPlusRequest{
		Service: tea.String("comment_multilingual_pro_global"),
		ServiceParameters: tea.String(string(serviceParameters)),
	}

	result, _err := client.TextModerationPlusWithOptions(&request, runtime)
	if _err != nil {
		panic(_err)
	}

	if *result.StatusCode != http.StatusOK {
		fmt.Printf("response not success. status:%d\n", *result.StatusCode)
		return
	}
	body := result.Body
	fmt.Printf("response success. requestId:%s, code:%d, msg:%s\n", *body.RequestId, *body.Code, *body.Message)
	if *body.Code != http.StatusOK {
		fmt.Printf("text moderation not success. code:%d\n", *body.Code)
		return
	}

	data := body.Data
	fmt.Printf("text moderation data:%s\n", *data)
}

Node.js SDK

ソースコードについては、「Node.js SDK ソースコード」をご参照ください。

1. 次のコマンドを実行して、依存関係をインポートします。

npm install @alicloud/green20220302@2.2.10

2. 統合用の Node.js SDK コード例。

const Green20220302 = require('@alicloud/green20220302');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');
// 注: インスタンス化されたクライアントをできるだけ再利用して、検出パフォーマンスを向上させます。接続の繰り返し確立を避けてください。
// コードが漏洩すると、AccessKey が漏洩し、アカウントのすべてのリソースのセキュリティが脅かされる可能性があります。次のコードは参照用です。
class Client {
    static createClient() {
        const config = new OpenApi.Config({
            // 必須。コード実行環境で環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID が設定されていることを確認してください。
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // 必須。コード実行環境で環境変数 ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
            endpoint: `green-cip.ap-southeast-1.aliyuncs.com`,
        });
        return new Green20220302.default(config);
    }

    static async main() {
        const client = Client.createClient();
        // リクエストオブジェクトを構築します
        const textModerationPlusRequest = new Green20220302.TextModerationPlusRequest({
            // テキスト拡張プラス検出サービス、参照: https://www.alibabacloud.com/help/document_detail/2684669.html#p-t7m-66g-cv6。
            "service": "comment_multilingual_pro_global",
            "serviceParameters": JSON.stringify({
                // 検出するテキスト。
                "content": "テストテキスト"})
            });
        // ランタイム設定オブジェクトを作成します
        const runtime = new Util.RuntimeOptions();
        try {
            // リクエストを送信してレスポンスを取得します
            const response = await client.textModerationPlusWithOptions(textModerationPlusRequest, runtime);
            console.log(JSON.stringify(response.body));
        } catch (error) {
            // これは表示目的です。プロジェクトでは例外を慎重に処理してください。例外を単に無視しないでください。
            // エラーメッセージ
            console.log('Error occurred:', error.message);
        }
    }
}

Client.main();

C# SDK

ソースコードについては、「C# SDK ソースコード」をご参照ください。

1. 次のコマンドを実行して、依存関係をインポートします。

dotnet add package AlibabaCloud.SDK.Green20220302 --version 2.2.10

2. 統合用の C# SDK コード例。

// このファイルは自動生成されます。編集しないでください。ありがとうございます。
using Newtonsoft.Json;
namespace AlibabaCloud.SDK.Green20220302
{
    public class TextModerationPlusAutoRoute
    {
        public static void Main(string[] args)
        {
            /**
            * Alibaba Cloud アカウントの AccessKey は、すべての API 操作に対する権限を持っています。API アクセスに Alibaba Cloud アカウントの AccessKey を使用すると、リスクが高くなります。API アクセスや O&M には RAM ユーザーを使用することをお勧めします。
            * AccessKey ID と AccessKey シークレットをコードに保存しないことを強くお勧めします。そうしないと、AccessKey が漏洩し、アカウントのすべてのリソースのセキュリティが脅かされる可能性があります。
            * 環境変数を取得する一般的な方法:
            * RAM ユーザーの AccessKey ID を取得する: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID")
            * RAM ユーザーの AccessKey シークレットを取得する: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
            */
            String accessKeyId = "環境変数から RAM ユーザーの AccessKey ID を取得することをお勧めします";
            String accessKeySecret = "環境変数から RAM ユーザーの AccessKey シークレットを取得することをお勧めします";
            // 必要に応じてリージョンとエンドポイントを変更します
            String endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
            //注: インスタンス化されたクライアントをできるだけ再利用して、接続の繰り返し確立を避け、検出パフォーマンスを向上させます。
            Client client = createClient(accessKeyId, accessKeySecret, endpoint);
            // ランタイムパラメーター設定、このランタイムパラメーターインスタンスを使用するリクエストにのみ有効
            AlibabaCloud.TeaUtil.Models.RuntimeOptions runtimeOptions =
                new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
            //テキスト検出リクエストを構築します。
            Models.TextModerationPlusRequest textModerationPlusRequest =
                new Models.TextModerationPlusRequest();
            //テキストプラス検出サービスの例: nickname_detection_pro
          	//サポートされているサービスについては、https://www.alibabacloud.com/help/document_detail/2684669.html#p-t7m-66g-cv6 をご参照ください
          	textModerationPlusRequest.Service = "comment_multilingual_pro_global";
            Dictionary<string, object> task = new Dictionary<string, object>();
            task.Add(
                "content",
                "テストテキスト"
            );
            textModerationPlusRequest.ServiceParameters = JsonConvert.SerializeObject(task);
            try
            {
                //API を呼び出して検出結果を取得します。
                Models.TextModerationPlusResponse response = client.TextModerationPlusWithOptions(
                    textModerationPlusRequest,
                    runtimeOptions
                );
                
                Console.WriteLine(response.Body.RequestId);
                Console.WriteLine(JsonConvert.SerializeObject(response.Body));
            }
            catch (Exception _err)
            {
                Console.WriteLine(_err);
            }
        }
        //リクエストクライアントを作成します
        public static Client createClient(
            String accessKeyId,
            String accessKeySecret,
            String endpoint
        )
        {
            AlibabaCloud.OpenApiClient.Models.Config config =
                new AlibabaCloud.OpenApiClient.Models.Config
                {
                    AccessKeyId = accessKeyId,
                    AccessKeySecret = accessKeySecret,
                    //HTTP プロキシを設定します。
                    //HttpProxy = "http://10.10.xx.xx:xxxx",
                    //HTTPS プロキシを設定します。
                    //HttpsProxy = "https://username:password@xxx.xxx.xxx.xxx:9999",
                    //アクセスするエンドポイント。
                    Endpoint = endpoint,
                };
            return new Client(config);
        }
    }
}

ネイティブ HTTPS 呼び出し

テキスト審査 2.0 API サービスは、ネイティブ HTTPS 呼び出しもサポートしています。ネイティブアプローチでは、ユーザーが独自の署名、復号、リクエストアセンブリ (URL、本文、ヘッダー、パラメーター) をカプセル化する必要があります。ネイティブ HTTPS アプローチを使用する必要があるのは、通常、2 つのシナリオのみです。これらの特別なシナリオのいずれかに該当しない限り、SDK アプローチを使用することをお勧めします。

  1. クライアントサイズに対する要件が高いアプリでの直接使用。

  2. アップグレードが困難な特定の依存関係ライブラリ要件。

  • 呼び出しメソッド

    サービスリクエストアドレス: https://green-cip.{region}.aliyuncs.com

    プロトコル: HTTPS

    メソッド: POST

  • 共通リクエストパラメーター

    テキスト審査 2.0 API 操作の入力パラメーターには、共通リクエストパラメーターと特定の API リクエストパラメーターが含まれます。共通リクエストパラメーターは、すべての API 操作が使用するパラメーターです。次の表に、共通リクエストパラメーターの詳細を示します。

    名前

    タイプ

    必須

    説明

    Format

    String

    はい

    返されるメッセージのフォーマット。有効な値:

    • JSON (デフォルト)

    • XML

    Version

    String

    はい

    YYYY-MM-DD 形式の API バージョン。この API のバージョンは 2022-03-02 です。

    AccessKeyId

    String

    はい

    Alibaba Cloud がサービスアクセス用にユーザーに発行する AccessKey ID。

    Signature

    String

    はい

    署名文字列。署名の計算方法の詳細については、以下の署名メソッドのセクションをご参照ください。

    SignatureMethod

    String

    はい

    署名メソッド。HMAC-SHA1 がサポートされています。

    Timestamp

    String

    はい

    リクエストのタイムスタンプ。タイムスタンプは ISO 8601 標準と UTC 時刻を使用します。フォーマットは yyyy-MM-ddTHH:mm:ssZ です。たとえば、2022-12-12T01:13:14Z は 2022 年 12 月 12 日 09:13:14 (UTC+8) を示します。

    SignatureVersion

    String

    はい

    署名アルゴリズムのバージョン。値を 1.0 に設定します。

    SignatureNonce

    String

    はい

    リプレイ攻撃を防ぐために使用される一意の乱数。リクエストごとに異なる乱数を使用する必要があります。

    Action

    String

    はい

    • テキスト拡張プラス API: TextModerationPlus

  • 共通レスポンスパラメーター

    システムは、リクエストが成功したかどうかに関係なく、送信する各 API リクエストに対して一意のリクエスト ID (RequestId) を返します。その他のレスポンスパラメーターには、ラベルと信頼度が含まれます。サービスごとに返されるパラメーターは異なります。詳細については、特定のサービスのドキュメントをご参照ください。

  • コード例

    次のレスポンス例は、読みやすさのためにフォーマットされています。実際のレスポンス結果は、改行やインデントでフォーマットされていません。

    以下は、テキスト審査 2.0 -国際ビジネス多言語検出のリクエスト例です。他の API 操作については、ビジネス入力パラメーターの特定の API ドキュメントをご参照ください:

    https://green-cip.ap-southeast-1.aliyuncs.com/ 
        ?Format=JSON
        &Version=2022-03-02
        &Signature=vpEEL0zFHfxXYzSFV0n7%2FZiFL9o%3D
        &SignatureMethod=Hmac-SHA1
        &SignatureNonce=15215528852396
        &SignatureVersion=1.0
        &Action=TextModerationPlus
        &AccessKeyId=123****cip
        &Timestamp=2022-12-12T12:00:00Z
        &Service=comment_multilingual_pro_global
        &ServiceParameters={"content": "テストテキスト"}

    以下は、テキスト審査 2.0 -国際ビジネス多言語検出のレスポンスパラメーターの JSON コード例です:

    {
        "Code": 200,
        "Data": {
            "Result": [
                {
                    "Label": "political_entity",
                    "Description":"政治的実体と疑われる",
                    "Confidence": 100.0,
                    "RiskWords": "単語 A,単語 B,単語 C"
                },
                {
                    "Label": "political_figure",
                    "Description":"政治的人物の疑い",
                    "Confidence": 100.0,
                    "RiskWords": "単語 A,単語 B,単語 C"
                }
            ],
            "RiskLevel": "high"
        },
        "Message": "OK",
        "RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
    }
  • 署名メソッド

    テキスト審査 2.0 サービスは、各アクセスリクエストを認証します。したがって、各リクエストには署名情報を含める必要があります。テキスト審査 2.0 サービスは、AccessKey ID と AccessKey シークレットを使用して対称暗号化を実装し、リクエスト送信者の ID を検証します。

    AccessKey ID と AccessKey シークレットは、Alibaba Cloud によって正式に発行されます (Alibaba Cloud の Web サイトで申請および管理できます)。AccessKey ID はユーザーを識別するために使用されます。AccessKey シークレットは、署名文字列を暗号化し、サーバーで署名文字列を検証するために使用されるキーです。AccessKey シークレットは厳重に機密を保持する必要があります。あなたと Alibaba Cloud だけが知っています。

    サービスにアクセスするときは、次の手順に従ってリクエストに署名します:

    1. リクエストパラメーターを使用して、正規化されたクエリ文字列を構築します。

      1. すべてのリクエストパラメーター ([Signature] パラメーターを除く、API 操作の共通リクエストパラメーターとカスタムパラメーターを含む) をアルファベット順に並べ替えます。

      2. リクエストパラメーターの名前と値をエンコードします。名前と値は、UTF-8 で URL エンコードする必要があります。

        説明

        一般的に、URL エンコーディングライブラリ (Java の java.net.URLEncoder など) は、application/x-www-form-urlencoded MIME タイプのルールに従ってエンコードします。このメソッドを直接エンコードに使用し、エンコードされた文字列のプラス記号 (+) を %20 に、アスタリスク (*) を %2A に、%7E をチルダ (~) に置き換えることで、上記のルールで説明されているエンコードされた文字列を取得できます。

        URL エンコーディングのルールは次のとおりです:

        • 文字 A-Z、a-z、0-9、および文字ハイフン (-)、アンダースコア (_)、ピリオド (.)、チルダ (~) はエンコードされません。

        • その他の文字は %XY の形式でエンコードされます。ここで、XY は文字の ASCII コードの 16 進数表現です。たとえば、二重引用符 (") のエンコーディングは %22 です。

        • 拡張 UTF-8 文字は %XY%ZA… の形式でエンコードされます。

        • スペース文字 ( ) は、プラス記号 (+) ではなく、%20 としてエンコードする必要があることに注意してください。

      3. マーシャリングされたパラメーター名と値を等号 (=) で接続します。

      4. パラメーター名のアルファベット順に等号で文字列を & 記号で接続して、正規化されたクエリ文字列を形成します。

    2. a.i で構築された正規化された文字列を使用して、次のルールに従って署名を計算するための文字列を作成します。

      StringToSign=
      HTTPMethod + "&" +
      percentEncode("/") + "&" +
      percentEncode(CanonicalizedQueryString)
      説明

      ここで、HTTPMethod はリクエストを送信するために使用される HTTP メソッド (POST など) です。percentEncode (/) は、a.ii で説明されている URL エンコーディングルールに従って文字 (/) をエンコードして得られる値で、%2F です。percentEncode (CanonicalizedQueryString) は、a.i で構築された正規化されたクエリ文字列を a.ii で説明されている URL エンコーディングルールに従ってエンコードして得られる文字列です。

    3. RFC2104 の定義に従って、上記の署名用文字列を使用して署名 HMAC 値を計算します。

      説明

      署名の計算に使用されるキーは、ユーザーの AccessKey シークレットに & 文字 (ASCII: 38) を追加したものであることに注意してください。使用されるハッシュアルゴリズムは SHA1 です。

    4. 上記の HMAC 値を Base64 エンコーディングルールに従って文字列にエンコードし、署名値 (Signature) を取得します。

    5. 取得した署名値を Signature パラメーターとしてリクエストパラメーターに追加して、リクエスト署名プロセスを完了します。

      説明

      取得した署名値を最終的なリクエストパラメーター値として Content Moderation サーバーに送信する場合、他のパラメーターと同様に、RFC3986 のルールに従って URL エンコードする必要があります。