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), // プラン情報がみつかりません。