CopyContentDetector 2β版

APIの概要

CopyContentDetector 2β版のAPIを利用すると、外部のプログラムからコピーチェックを行う文章をPOSTしたり、結果を取得したりすることが可能になります。

各ユーザごとにAPIキーが発行されます。APIキーは「API情報と履歴」から確認できます。

ぜひ、独自のプログラム開発にご活用ください。

APIの仕様

APIでのチェックは、一回の文章の長さはプランごとに異なります。1回文章を登録すると、1回API回数を消費します。結果の取得は、API回数を消費しません。

チェック文章の登録時に一回API回数を消費します。

API回数は利用後、24時間で復活します。もし、7/3 13:00に5回のAPI回数を消費すると、7/4 13:00にその消費した5回分が復活します。

開発に関しての質問・サポートは一切受け付けておりません。サポートが必要な場合は、法人向けプランを代理店よりご契約ください。

APIについて

各操作にエンドポイントが設定されています。インターネットに接続されPOST,またはGETの形式でアクセスでき、jsonの取り扱いができる状態であれば、どのプログラム言語、環境からでも利用することができます。

APIを使って文章をチェックする

APIを利用して、CopyContentDetector 2β版文章を登録します。API回数を1回消費します。

エンドポイント

https://ccd2.cloud/ApiUserPost/
POSTのみ対応しています。

PHP サンプルプログラム

	$postParamList = [
		'api_key' => "【APIキーを設定】",
		'article' => '今日はいい天気ですね。でも、明日から更に天気が悪くなるらしいですよ。悲しいですね。',
		'app_name' => 'サンプルプログラム',
		'api_callback_url' => 'http://localhost/ApiSample/callback', // 完了時のコールバックURL。指定なしでもOKです
		'del_domain' => 'blog.supersonico.info',  // 結果から除外するサイトのドメイン。指定なしでもOKです。
	];

	$url = 'https://ccd2.cloud/ApiUserPost/';

	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, true );
	curl_setopt($ch, CURLOPT_HEADER, false );
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postParamList));
	curl_setopt($ch, CURLOPT_TIMEOUT, 30 );
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

	$result = curl_exec( $ch );
	curl_close( $ch );

	echo $result;
	die();

実行結果(正常時)

{
	"status":1,
	"queue_id":【ここにキューID(数値)が入る】
}

実行結果(エラー発生時)

{
	"status":9,
	"error_code":【エラーコード】,
	"error_message":"【エラー内容】"
}

POSTパラメータ

api_key【必須】

ユーザのAPIキー

article【必須】

記事本体。25文字以上、最大4,000文字になります。

app_name【必須】

アプリケーション名を設定出来ます。自由に文字を指定することができ、150文字まで入力できます。

api_callback_url

コピーチェック完了時にアクセスされるURLがある場合、指定することができます。チェック完了時に、1回だけアクセスされます。リトライは行いません。250文字まで入力可能です。コールバックURLには、GETパラメータに【id=【実行キューのID】】が付与されてアクセスされます。

del_domain

このドメインを排除してコピーチェックを行います。カンマ区切りで入力すると、複数指定することが出来ます。250文字まで入力可能です


戻り値【正常時】

status

1が戻ります

queue_id

チェック文章に付与されるIDになります。このIDを利用して結果にアクセスします。

戻り値【エラー時】

status

9が戻ります

error_code

エラーコードが入ります。エラーコード一覧は、こちらから確認できます。

error_message

詳細なエラー内容です

チェック結果の取得

チェック結果をAPI経由で取得することができます。結果はJSON形式で返却されます。

エンドポイント

https://ccd2.cloud/ApiUserResult/

GETのみ対応しています。


PHP サンプルプログラム

	$postParamList = [
		'api_key' => "【APIキーを設定】",
		'queue_id' => 【ApiUserPostの実行結果、queue_idを指定】,
	];

	$url = 'https://ccd2.cloud/ApiUserResult/?' . http_build_query($postParamList);

	// 検索エンジンへアクセスする
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_HEADER, false );
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
	curl_setopt($ch, CURLOPT_TIMEOUT, 30);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

	$result = curl_exec( $ch );
	curl_close( $ch );

	$result = json_decode($result, true);
	var_dump($result);
				

実行結果(正常時)

			{
	"status": 1,
	"queue": {
		"id": 19,
		"article": "今日はいい天気ですね。でも、明日から更に天気が悪くなるらしいですよ。悲しいですね。",
		"del_domain": "",
		"app_name": "SAMPLE",
		"api_callback_url": "",
		"master_status": 3
	},
	"result": {
		"queue_id": 19,
		"all_result": {
			"ruiji": {
				"percent": 50,
				"hantei": 2
			},
			"kikai": {
				"percent": 70,
				"hantei": 2
			},
			"renzoku": {
				"maxStrCount": 18,
				"maxString": "から更に天気が悪くなるらしいですよ。",
				"hantei": 3
			}
		},
		"devide": {
			"329": {
				"id": 329,
				"devide_string": "今日はいい天気ですねでも"
			},
			"330": {
				"id": 330,
				"devide_string": "明日から更に天気が悪くなるらしいですよ"
			}
		},
		"ruiji_result": {
			"percent": 50,
			"resultList": [
				{
					"title": "【検知したサイトタイトル】",
					"url": "【検知したサイトURL】",
					"detail_list": {
						"329": {
							"devie_id": 329,
							"web_string": "今日はいい天気ですねでも",
							"leven_result": 0,
							"leven_hantei": 1
						}
					},
					"percent": 50
				},
				{
					"title": "【検知したサイトタイトル】",
					"url": "【検知したサイトURL】",
					"detail_list": {
						"329": {
							"devie_id": 329,
							"web_string": "今日はいい天気ですね。でも",
							"leven_result": 2,
							"leven_hantei": 1
						}
					},
					"percent": 50
				}
			]
		},
		"kikai_result": {
			"maxPercent": 70,
			"resultList": {
				"【検知したサイトURL】": {
					"title": "【検知したサイトタイトル】",
					"percent": 70,
					"hantei": 2,
					"webStringList": [
						"日から更に天気が悪くなるらしいで",
						"日はいい天気で",
						"しいで",
						"でも",
						"よ"
					]
				},
				"【検知したサイトURL】": {
					"title": "【検知したサイトタイトル】 ",
					"percent": 68,
					"hantei": 2,
					"webStringList": [
						"ですね。でも、明日から",
						"なるらしいですよ。",
						"ですね。",
						"はいい",
						"が"
					]
				}
			}
		},
		"renzoku_result": {
			"maxStrCount": 18,
			"maxString": "から更に天気が悪くなるらしいですよ。",
			"resultList": {
				"【検知したサイトURL】": {
					"title": "【検知したサイトタイトル】",
					"renzokuResultList": [
						{
							"renzokuString": "から更に天気が悪くなるらしいですよ。",
							"strCount": 18,
							"hantei": 3
						}
					]
				},
				"【検知したサイトURL】": {
					"title": "【検知したサイトタイトル】",
					"renzokuResultList": [
						{
							"renzokuString": "日から更に天気が悪くなるらしいで",
							"strCount": 16,
							"hantei": 3
						}
					]
				}
			}
		},
		"version": 1
	}
}
			

実行結果(エラー発生時)

{
	"status":9,
	"error_code":【エラーコード】,
	"error_message":"【エラー内容】"
}
			

GETパラメータ

api_key【必須】

ユーザのAPIキー

queue_id【必須】

ApiUserPostの実行結果、queue_idを指定します


戻り値【チェック完了 正常時】

status

1が戻ります

queueの詳細

登録した元の文章の情報になります。

id

実行キューのIDになります。

article

登録した文章になります

del_domain

登録時に指定した削除ドメインになります。もし、指定していない場合は空になります

app_name

アプリケーション名になります

api_callback_url

チェック完了時のコールバックURLです。コールバックURLには、GETパラメータに【id=【実行キューのID】】が付与されてアクセスされます。

master_status

チェック状況です。完了時は「3」が入ります。master_statusの定数はこちらをご確認ください


resultの詳細

チェック結果になります

all_result

総合判定情報になります。

  • 【ruiji】 類似度判定になります。 percentは類似度。hanteiには判定結果が入ります。判定結果の定数は、こちらをご確認ください
  • 【kikai】 一致率判定になります。 percentは一致率。hanteiには判定結果が入ります。判定結果の定数は、こちらをご確認ください
  • 【renzoku】 連続文字判定になります。 maxStrCountは最長一致文字数。maxStringには、検知した文字列。hanteiには判定結果が入ります。判定結果の定数は、こちらをご確認ください

devide

元の文章を分割した結果になります。

  • 【id】 分割IDになります。これは、後ほど出てくる類似度判定結果「ruiji_result」のdevide_idとの対応になります。
  • 【devide_string】 分割した文章の文字列になります。

ruiji_result

類似度の結果になります

  • 【percent】 類似度のパーセンテージになります。「all_resultのruiji」と同じ数値が入ります。
  • 【resultList】 検知したサイトを列挙しています。それぞれ以下の通りになります。上から順番に類似度が高いものになっています。
    • 【title】 検知したサイトのタイトル
    • 【url】 検知したサイトのURL
    • 【detail_list】 このサイトに含まれる文字列と結果の一覧になります。

kikai_result

一致率の結果になります

  • 【maxPercent】 一致率の最大パーセンテージになります。「all_resultのkikai」と同じ数値が入ります。
  • 【resultList】 検知したサイトとを列挙しています。それぞれ以下の通りになります。上から順番に一致率が高いものになっています。
    • 【title】 検知したサイトのタイトル
    • 【percent】 このサイトの一致率になります
    • 【hantei】 このサイトに対しての単一判定結果になります。判定結果の定数は、こちらをご確認ください
    • 【webStringList】 この文字列一覧がこのサイトに見つかった文字になります。元の文章に、この文字列だけ色を塗ると、結果の%になります。

renzoku_result

連続一致文字列の判定結果になります。

  • 【maxStrCount】 連続一致文字数になります。「all_resultのrenzokuのmaxStrCount」と同じ数値が入ります。
  • 【maxString】 maxStrCountを出した文字列になります。「all_resultのrenzokuのmaxString」と同じ文字列が入ります。
  • 【resultList】 検知したサイトとを列挙しています。それぞれ以下の通りになります。上から順番に、連続した文字が一番長いものが含まれている順番になっています。
    • 【title】 検知したサイトのタイトル
    • 【renzokuResultList】 検知したサイトから検知した連続一致文字結果一覧になります
    • 【renzokuString】 連続一致した文字列です
    • 【strCount】 連続一致した文字列の文字数です。
    • 【hantei】 この文字列に対しての単一判定結果になります。判定結果の定数は、こちらをご確認ください

戻り値【チェック未完了 正常時】

もし、結果を取得したときチェックが完了していない場合は、master_statusに1が入り、resultが空で戻ります。

戻り値【エラー時】

status

9が戻ります

error_code

エラーコードが入ります。エラーコード一覧は、こちらから確認できます。

error_message

詳細なエラー内容です

エラー時の再実行

結果を取得したとき、対象の実行結果がのmaster_statusが例外(9)だったときに再実行をすることができます。

エンドポイント

https://ccd2.cloud/ApiUserRetry/
GETのみ対応しています。

PHP サンプルプログラム

		$postParamList = [
			'api_key' => "【APIキーを設定】",
			'queue_id' => '【キューID】'
		];


		$url = 'https://ccd2.cloud/ApiUserRetry/?' . http_build_query($postParamList);

		// 検索エンジンへアクセスする
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_HEADER, false );
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
		curl_setopt($ch, CURLOPT_TIMEOUT, 30);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

		$result = curl_exec( $ch );
		curl_close( $ch );

		$result = json_decode($result, true);
		var_dump($result);

実行結果(正常時)

{
	"status": 1,
}

実行結果(エラー発生時)

{
	"status":9,
	"error_code":【エラーコード】,
	"error_message":"【エラー内容】"
}

GETパラメータ

api_key【必須】

ユーザのAPIキー


戻り値【正常時】

status

1が戻ります

戻り値【エラー時】

status

9が戻ります

error_code

エラーコードが入ります。エラーコード一覧は、こちらから確認できます。

error_message

詳細なエラー内容です

残りAPI回数の確認

対象のユーザの残りAPI回数を取得することができます。

エンドポイント

https://ccd2.cloud/ApiUserInfo/remain/
GETのみ対応しています。

PHP サンプルプログラム

		$postParamList = [
			'api_key' => "【APIキーを設定】",
		];


		$url = 'https://ccd2.cloud/ApiUserInfo/remain?' . http_build_query($postParamList);

		// 検索エンジンへアクセスする
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_HEADER, false );
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
		curl_setopt($ch, CURLOPT_TIMEOUT, 30);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

		$result = curl_exec( $ch );
		curl_close( $ch );

		$result = json_decode($result, true);
		var_dump($result);

実行結果(正常時)

{
	"status": 1,
	"result": {
		"current_plan_name": '契約中のプラン名',
		"plan_count": 5,
		"remain_count": 3
	}
}

実行結果(エラー発生時)

{
	"status":9,
	"error_code":【エラーコード】,
	"error_message":"【エラー内容】"
}

GETパラメータ

api_key【必須】

ユーザのAPIキー


戻り値【正常時】

status

1が戻ります

current_plan_name

契約中のプラン名になります。無料プランの場合はNULLになります

plan_count

契約中のプランの24時間の最大API実行数になります。

remain_count

現在の残りAPI回数になります。

戻り値【エラー時】

status

9が戻ります

error_code

エラーコードが入ります。エラーコード一覧は、こちらから確認できます。

error_message

詳細なエラー内容です

システムの待ち状況の確認

現在のシステムの混雑状況のパーツを取得することができます。srcの中にテンプレートが返却されます。

エンドポイント

https://ccd2.cloud/ApiSystemInfo/
GETのみ対応しています。

PHP サンプルプログラム

		$postParamList = [
			'api_key' => "【APIキーを設定】",
		];


		$url = 'https://ccd2.cloud/ApiSystemInfo/';

		// 検索エンジンへアクセスする
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_HEADER, false );
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
		curl_setopt($ch, CURLOPT_TIMEOUT, 30);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

		$result = curl_exec( $ch );
		curl_close( $ch );

		$result = json_decode($result, true);
		var_dump($result);

実行結果(正常時)

{
	"status": 1,
	"src": "テンプレート内容",
}

実行結果(エラー発生時)

{
	"status":9,
}

GETパラメータ

api_key【必須】

ユーザのAPIキー


戻り値【正常時】

status

1が戻ります

src

システム右上に表示される、システム情報のテンプレートが戻ります。

戻り値【エラー時】

status

9が戻ります

判定結果定数

PHP形式の定数になっています。PHPで利用する場合は、このまま貼り付ければ利用できます。

define('RESULT_CRIT', 1), // コピーの疑い
define('RESULT_WARN', 2), // 要注意
define('RESULT_OK', 3), // 良好
				

MasterStatus

PHP形式の定数になっています。PHPで利用する場合は、このまま貼り付ければ利用できます。

// API側バッチステータス
define('BATCH_NOTEXECUTE', 1), // 未実行
define('BATCH_EXECUTE', 2), // 実行中
define('BATCH_COMPLETE', 3), // 実行完了
define('BATCH_EXCEPTION', 9), // 処理中にエラー。再実行してください。
				

エラーコード一覧

PHP形式の定数になっています。PHPで利用する場合は、このまま貼り付ければ利用できます。

// 共通APIエラーコード
define('API_USER_ERROR_NOAPIKEY', 1), // APIキーが見つからない
define('API_USER_ERROR_USERNOTFOUND', 2), // APIキーに紐づくユーザが見つからない

// チェック文章登録時のエラーコード
define('API_USER_ERROR_APILIMIT', 3), // APIの上限に達している
define('API_USER_ERROR_PLANNOTFOUND', 4), // APIプランが見つかりません。
define('API_USER_ERROR_VALIDATE', 5), // バリデーションエラー
define('API_USER_ERROR_ARTICLE_REGISTRATION_CONNECT', 6), // 登録時の通信障害、。少ししてから再実行してください
define('API_USER_ERROR_ARTICLE_REGISTRATION_SERVER', 7), // サーバ側での登録障害。少ししてから再実行してください

// 結果取得時
define('API_USER_RESULT_ERROR_NOQUEUEID', 10), // キューIDが存在しない
define('API_USER_RESULT_ERROR_QUEUE_NOTFOUND', 11), // キュー情報が見つからない
define('API_USER_RESULT_ERROR_SERVER', 12), // サーバ側で取得障害。少ししてから再実行してください。

// リトライのとき
define('API_USER_RETRY_ERROR_NOQUEUEID', 20), // キューIDが存在しない
define('API_USER_RETRY_ERROR_QUEUE_NOTFOUND', 21), // キュー情報が見つからない
define('API_USER_RETRY_ERROR_INVALID_STATUS', 22), // キューが例外ステータス以外になっている
define('API_USER_RETRY_ERROR_SERVER', 23), // キューが例外ステータス以外になっている

// 回数情報
define('API_USER_PLAN_NOTFOUND', 30), // プラン情報がみつかりません。