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回消費します。
エンドポイント
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を利用して結果にアクセスします。
チェック結果の取得
チェック結果をAPI経由で取得することができます。結果はJSON形式で返却されます。
エンドポイント
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】 このサイトに含まれる文字列と結果の一覧になります。
- 【devie_id】 登録した文章を分割した結果のIDになります。IDと文章は「devide」に出力されています。
- 【web_string】 一致したサイトにあった文字列
- 【leven_result】 編集距離。0に近いほど一致していると判断できます。
- 【leven_hantei】 この文字列に対しての単一判定結果になります。判定結果の定数は、こちらをご確認ください
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が空で戻ります。エラー時の再実行
結果を取得したとき、対象の実行結果がのmaster_statusが例外(9)だったときに再実行をすることができます。
エンドポイント
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が戻ります
残りAPI回数の確認
対象のユーザの残りAPI回数を取得することができます。
エンドポイント
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回数になります。
システムの待ち状況の確認
現在のシステムの混雑状況のパーツを取得することができます。srcの中にテンプレートが返却されます。
エンドポイント
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), // プラン情報がみつかりません。