Rapls Copy Notice Pro マニュアル

Rapls Copy Notice Pro マニュアル

Rapls Copy Notice Pro マニュアル

Pro 1.1.22 | 無料版 Rapls Copy Notice 1.3.19 以上 | WordPress 6.3 以上 | PHP 8.2 以上

Rapls Copy Notice Pro は、無料プラグイン Rapls Copy Notice のアドオンです。無料版が記録したコピーをもとに、統計、チャットと Webhook への通知、通知の振り分けルール、急増アラート、転載の検索、CSV の書き出しを加えます。

コピーの検出・記録・メール通知・記録の保存期間は、これまでどおり無料版のタブ(Log / Notifications / Detection / Privacy / Visitors)で設定します。そちらは Free 版マニュアルをご覧ください。Pro もコピーを止める機能は持っていません。

入れただけでは、外へは何も送りません。 チャンネルはすべてオフ、ルールは 0 件、急増アラートと転載の検索もオフが既定です。オンにするまで、通知は無料版のメールだけです。外へ出る通信は、ライセンスの確認と更新の確認(どちらも raplsworks.com)だけです。

01はじめに

動作要件

項目要件
無料版 Rapls Copy Notice1.3.19 以上がインストール・有効化されていること(必須)
WordPress6.3 以上
PHP8.2 以上
外向きの HTTPS 通信ライセンスの有効化・毎日の確認・更新に使います。チャンネルや転載の検索をオンにしたときは、そのサービスへも送ります
マルチサイト5 サイト版のライセンスが必要です(詳しく)
無料版が無い・古いとき Pro は何もしません。タブも出ず、ライセンスと更新の確認も行いません。管理画面には次のどちらかが出ます。サイトは止まりません。
  • 無料版が無い・無効: Rapls Copy Notice Pro を使うには、Rapls Copy Notice プラグインをインストールして有効化してください。
  • 無料版が 1.3.19 より古い: Rapls Copy Notice Pro には Rapls Copy Notice 1.3.19 以降が必要です。Rapls Copy Notice を更新してください。
無料版を有効化・更新すれば、そのまま動き始めます。PHP が 8.2 より古いサーバーでは「Rapls Copy Notice Pro needs PHP 8.2 or later and is not running.」と出て、Pro は読み込まれません。

インストール

  1. WordPress.org から無料版 Rapls Copy Notice(1.3.19 以上)をインストールし、有効化します。
  2. 販売ページで購入すると、ライセンスキーがメールで届きます。
  3. ダウンロードページで、購入時のメールアドレスとライセンスキーを入力し、rapls-copy-notice-pro.zip を受け取ります。
  4. プラグイン → 新規プラグインを追加 → プラグインのアップロード から ZIP をアップロードし、有効化します。マルチサイトでは ネットワーク管理 → プラグイン からアップロードし、ネットワークで有効化 を押します。

有効化すると、ツール → Rapls Copy Notice に 統計・チャンネル・ルール・転載の検索・CSV 書き出し・ライセンス の 6 つのタブが加わります。無料版の「Pro features」タブは表示されなくなります。

ライセンスの有効化

ライセンスキーは RCNP-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX の形です。小文字で入力しても大文字にそろえて送ります。

  1. ツール → Rapls Copy Notice → ライセンス タブを開きます。プラグイン画面の Pro の行にある ライセンス リンクからも開けます。
  2. メールアドレス に購入時のアドレス、ライセンスキー にキーを入力します。
  3. ライセンスを有効化 を押します。ステータス が 有効 になり、メールアドレス、伏せ字のキー(先頭と末尾の 5 文字だけ表示)、種類 が並べば完了です。
Pro のライセンスタブ。ライセンスの状態、メールアドレス、伏せたライセンスキー、種類

有効化で出るメッセージ:

表示意味と対処
ライセンスを有効化しました。(またはサーバーからのメッセージ)完了です。
メールアドレスとライセンスキーの両方を入力してください。どちらかが空欄か、メールアドレスの形になっていません。
ライセンスサーバーに接続できませんでした。サーバーから外へ HTTPS で出られていません。ホスティングのファイアウォールや、外向き通信の制限をご確認ください。
ライセンスサーバーから予期しない応答が返されました。 / ライセンスサーバーから不正な応答が返されました。途中のファイアウォール・プロキシ・WAF が、ライセンスサーバーの代わりに答えている可能性があります。時間をおいても続くときは、この表示を添えてご連絡ください。
有効化できませんでした。(またはサーバーからの理由)メールアドレスとキーの組み合わせ違い、サイト数の上限、取り消されたキーのいずれかです。
マルチサイトには5サイト版のライセンスが必要です。このキーは1サイト版のため、ここでは有効化していません。マルチサイトで 1 サイト版のキーを入れました。サーバー側で取った枠はその場で返しています。5 サイト版のキーをお使いください。

キーとメールアドレスはデータベースに保存し(自動読み込みなし)、ライセンスサーバーへは HTTPS のリクエストヘッダー(X-RCN-License-Key / X-RCN-License-Email)で送ります。URL には載せません。リダイレクトにも従いません(ヘッダーを別のサーバーへ送らないため)。

止まるとき・止まらないとき

ライセンスは買い切りで、期限はありません。有効化のあと、ライセンスは 1 日 1 回(最初の確認は有効化の約 1 日後)サーバーで確認されます。確認のときに送るのは、キー・メールアドレス・サイトのアドレスです。

状況Pro の機能
サーバーが「有効」と答えた動きます
サーバーに届かない(障害、ファイアウォール、外向き通信の制限)動き続けます。何日続いても止まりません
サーバー以外のもの(WAF やプロキシ)が、「有効・無効」を含まない答えを返した届かないときと同じ扱いで、動き続けます
サーバーがはっきり「無効」と答えた(返金、取り消されたキー、このサイトのアドレスが枠に登録されていない)止まります
キーが入っていない、または このサイトで無効化 で解除した止まります
止まったときに起きること・起きないこと Pro のタブには「この機能を使うには、Rapls Copy Notice Pro のライセンスを有効化してください。」と ライセンスを有効化する のリンクが出ます。チャンネル・ルール・急増アラート・転載の検索は止まり、通知は無料版のメールだけに戻ります(ルールも外れるので、すべてのコピーがメールに入ります)。
消えるものはありません。コピーの記録、Pro の設定、ルール、見つかったページはそのまま残り、無料版はいつもどおり動きます。もう一度有効化すれば、前の設定のまま再開します。

無効化とサイトの移行

1 サイト版は 1 つのサイト、5 サイト版は 5 つのサイトまで有効化できます。「ライセンス」タブの このサイトで無効化 を押すと、サーバー側の枠が空き、このサイトに保存したキーとメールアドレスが消えます。確認の画面は出ません。サーバーに届かなかった場合もサイト側の情報は消えますが、枠は空かないことがあります。そのときはご連絡ください。

ドメインを変える前に無効化してください 毎日の確認では、サイトのアドレスが枠に登録されているかも確かめます。無効化しないままアドレスを変えると、次の確認で Pro が止まります。移す前に元のサイトで無効化し、新しいアドレスで有効化してください。忘れた場合は、新しいサイトで有効化し直してください。枠が足りないときは、ご連絡いただければ古いアドレスを外します。
  • ステージング・複製したサイト: データベースを複製しても、複製先のアドレスは枠に登録されていないので、次の確認で Pro が止まります。複製先でも使うなら、そのサイトで有効化してください(枠を 1 つ使います)。
  • Pro を削除しても枠は空きません。 削除の前に無効化してください。

マルチサイト

  • 5 サイト版のライセンスが必要です。 5 サイト版なら、ネットワーク内のサイトがいくつあっても全部に効きます。ライセンスはネットワークのメインのアドレスで登録します。
  • 無料版と Pro の両方を「ネットワークで有効化」してください。 ライセンスを入力する画面はネットワーク管理にあり、そこに表示されるのはネットワークで有効化したときだけです。
  • ライセンスは ネットワーク管理 → 設定 → Rapls Copy Notice Pro で、特権管理者(manage_network_options)が管理します。ボタンは このネットワークで無効化 になります。
  • 各サイトの「ライセンス」タブには「ライセンスの状態: このネットワークで有効」または「ライセンスの状態: 無効」が出ます。特権管理者には ネットワーク管理でライセンスを管理 のリンク、ほかの管理者には「ライセンスはネットワーク管理者が管理しています。」と表示されます。
  • コピーの記録、チャンネル、ルール、転載の検索の設定は、サイトごとに別です。各サイトの管理者がそれぞれのサイトで設定します。
  • 1 サイト版で有効化したあとでサイトをマルチサイトに変えた場合も、Pro は止まります。

画面の場所

画面場所必要な権限
統計 / チャンネル / ルール / 転載の検索 / CSV 書き出しツール → Rapls Copy Notice の各タブ管理者(manage_options)
ライセンス(単一サイト)ツール → Rapls Copy Notice → ライセンス管理者
ライセンスとサイト別の件数(マルチサイト)ネットワーク管理 → 設定 → Rapls Copy Notice Pro特権管理者
無料版の設定(記録・メール・除外・保存期間)同じ画面の Log / Notifications / Detection / Privacy / Visitors タブ管理者
更新ダッシュボード → 更新、プラグインプラグインを更新できるユーザー

02統計

無料版の記録をもとに、日ごとのコピー数を前の期間と並べて見せます。記録を読むだけで、何も書き換えません。

Pro の統計タブ。過去 30 日間の日別のコピー数を前の期間と重ねたグラフと、よくコピーされた投稿の表

期間と前の期間

  • 上のリンクで 過去7日間 / 過去30日間 / 過去90日間 を選びます。既定は 30 日です。
  • 期間は、サイトのタイムゾーン(設定 → 一般)で今日の終わりまでの N 日間です。前の期間は、そのすぐ前の同じ日数です。
  • 上の行に「この期間のコピー: N件」と、前の期間との増減(例: (前の期間比 +12.5%、前の期間: 8件))が出ます。前の期間が 0 件なら増減は出さず (前の期間: 0件) と出ます。
  • グラフは日ごとの件数です。実線が この期間、破線が 前の期間 です。グラフの部品(Chart.js 4.5.1)はプラグインに同梱していて、外部から読み込みません。
90 日表示と保存期間 数えるのは、無料版の記録に残っているコピーだけです。無料版の Keep records for(Privacy タブ)は既定で 90 日なので、「過去90日間」の前の期間(91〜180 日前)はほぼ空になります。比べたいときは保存期間を延ばしてください。

記事ごと・段落ごと

よくコピーされた投稿 は、期間中によくコピーされた記事の上位 20 件です。

列内容
投稿記事のタイトルと ID
この期間 / 前の期間この期間と前の期間の件数
増減増減の割合。前の期間が 0 件で今回 1 件以上なら 新規
詳細段落 でその記事の段落別の表を開きます。ログ で無料版の Log タブを、その記事だけに絞って開きます

段落 を押すと、表の上に よくコピーされた段落: 記事名 が出ます。よくコピーされた段落の上位 20 件で、各行には、その段落から最後にコピーされた文の先頭 120 文字が出ます(マウスを載せると全文)。行の ログ は、その記事のその段落だけに絞った記録を開きます。投稿の一覧に戻る で記事の一覧に戻ります。

Pro の統計タブの段落表示。1 つの投稿でよくコピーされた段落の表と、その下のよくコピーされた投稿の表

段落は、無料版が訪問者のブラウザーで作る「段落の指紋」(paragraph_hash)で見分けます。次のコピーには指紋が無く、段落の表には入りません。表の下にその件数が出ます。

  • 無料版 1.2 より前に記録されたもの
  • HTTPS でないページでのコピー(ブラウザーが指紋の計算を許しません)
  • 段落の外(見出しや表など)からのコピー

03チャンネル

無料版が送る通知を、メールと同じタイミングで Slack・Discord・Chatwork・独自の Webhook にも送ります。タイミングは無料版の Notifications タブの When to send で選んだもの(One summary email per hour=1 時間ごとのまとめ、または One email per copy, right away=コピーごとにすぐ)です。

Pro のチャンネルタブ。Slack・Discord・Chatwork・Webhook の設定、送る訪問者の情報、チャンネルごとのテスト送信ボタン

設定欄

各チャンネルに ここへ通知を送る のチェックがあります。既定はすべてオフです。

チャンネル欄受け付ける形
SlackIncoming Webhook URLhttps://hooks.slack.com/services/…(/workflows/・/triggers/ も可)
DiscordWebhook URLhttps://discord.com/api/webhooks/数字/トークン(ptb.・canary.・discordapp.com も可)
ChatworkAPI トークン英数字 20〜64 文字
ルーム ID数字だけ(例: 123456789)
WebhookURL (HTTPS)HTTPS で、公開されたホスト(2,000 文字まで)。localhost や社内向けのアドレス(プライベート IP)は受け付けません
署名用の秘密値 (任意、16文字以上)空白を含まない半角の英数字・記号 16〜128 文字。空欄なら署名しません
  • URL・トークン・署名の秘密値は、保存したあと画面に全文を出しません。欄の下に「保存済み: hooks.slack.com …a1b2。空欄のままなら変わりません。」のように末尾 4 文字だけが出ます。空欄のまま保存すれば、保存済みの値を使い続けます。消すときは 削除 にチェックを入れて保存します。
  • 形の合わない値は保存されず、前の値のまま残ります。そのとき「設定を保存しましたが、形式の合わない値があったため、その値は変更していません。…」と出ます。
  • URL やトークンが無いチャンネルは、チェックを入れて保存してもオフに戻ります。

送る訪問者の情報 で、Slack・Discord・Chatwork・Webhook にコピーごとに送る項目を選べます。既定はすべてチェックありです。

項目外したとき
コピーされた文チャットのメッセージから、コピーされた文の枠がなくなります。Webhook の copied_text は空文字になります(text_length は送ります)
IP アドレス (保存した形)IP を送りません。Webhook の ip は空文字
ユーザーエージェントブラウザーの情報を送りません。Webhook の user_agent は空文字
参照元のホスト参照元を送りません。Webhook の referrer_host は空文字
  • 投稿・その URL・日時は、外せません(これが無いと通知の意味がないため)。
  • メールには影響しません。メールの中身は無料版が決めます。
  • 無料版が用意するプライバシーポリシーの文例(設定 → プライバシー)には、ここでチェックした項目だけが「送る内容」として載ります。

Slack の Webhook URL を用意する

  1. Slack の API サイト(api.slack.com/apps)で、ワークスペースに新しいアプリを作ります(「From scratch」で名前とワークスペースを選びます)。
  2. アプリの設定で Incoming Webhooks を開き、オンにします。
  3. Add New Webhook(ワークスペースへの追加)を押し、通知を流すチャンネルを選んで許可します。
  4. 表示された https://hooks.slack.com/services/… の URL をコピーし、「チャンネル」タブの Incoming Webhook URL に貼って保存します。

ワークスペースによっては、アプリの追加に管理者の承認が要ります。

Discord の Webhook URL を用意する

  1. 通知を流したいサーバーの サーバー設定 → 連携サービス → ウェブフック を開きます(ウェブフックの管理権限が必要です)。
  2. 新しいウェブフック を作り、名前と投稿先のチャンネルを選びます。
  3. ウェブフック URL をコピー を押し、「チャンネル」タブの Webhook URL に貼って保存します。

Chatwork の API トークンとルーム ID を用意する

  1. Chatwork の右上のアカウントメニューから サービス連携 を開き、API Token でトークンを発行・表示します。組織のアカウントでは、API の利用に管理者の承認が要ることがあります。
  2. トークンを 「チャンネル」タブの API トークン に貼ります。
  3. 通知を流したいチャットを開き、ブラウザーのアドレス欄の末尾 #!rid123456789 の数字(123456789)を ルーム ID に入れて保存します。

メッセージは、トークンを発行したアカウントの名前で投稿されます。そのアカウント自身にも未読として表示されます。通知用に別のアカウントを用意すると見分けやすくなります。

テスト送信

設定欄の下の テストメッセージを送信 に、Slack Discord Chatwork Webhook のボタンがあります。保存済みの設定で、作り物のデータの見本を 1 通送ります。チャンネルがオフでも送ります。入力しただけで保存していない値は使わないので、先に保存してください。

  • 見本の本文には、HTML のタグ、Chatwork のタグ、@everyone、 がわざと入っています。どれもただの文字として表示されれば正常です。
  • 成功: 「テストメッセージを送信しました。」
  • 失敗: 「テストメッセージを届けられませんでした。URL やトークンと、そのサービスがこのサーバーからのリクエストを受け付けているかを確認してください。」URL・トークン・ルーム ID と、サーバーから外へ出られるかを確認してください。

届くメッセージ

見出しは「[サイト名] N件のコピーを検出しました」です。1 通に詳しく載せるのは 10 件までで、残りは「…ほかN件はログをご覧ください。」とまとめます。各件には、日時・記事のタイトルと URL・コピーされた文(先頭 200 文字)・IP アドレス・ユーザーエージェント(Slack は参照元のホストも)が入ります。Discord は 1 通の長さに上限があるので、収まる件数だけ載せます。

  • IP アドレスは、無料版の設定で短くしたもの(既定)がそのまま入ります。
  • 「すぐ送る」設定のときは、無料版の Instant email limit(1 時間あたりの上限)がチャンネルにも効きます。上限を超えた分は、次の 1 時間ごとのまとめに入ります。
  • メールかどれか 1 つのチャンネルに届けば、その通知は送信済みになります。そのとき届かなかったチャンネルには、そのチャンネルにだけあとで送り直します。すべて失敗したときは送信済みにせず、無料版の 1 時間ごとのまとめで通知全体をもう一度送ります。
  • 1 回の送信は 5 秒で打ち切り、リダイレクトには従いません。

訪問者のデータの扱い

コピーされた文・IP・ユーザーエージェント・参照元は訪問者のブラウザーから来た値です。転載の検索で見つかったページのタイトルや抜粋は第三者の値です。どちらも、送り先の書式で意味を持たないように変換してから送ります。

送り先扱い
Slack&・<・> を文字参照にして送るので、@channel やユーザーへのメンション、リンクを作れません。訪問者の値はコードとして表示します
Discord訪問者の値はコードブロックかコードの中に置き、メッセージごとにメンションを無効にしています
Chatwork訪問者の文の中の [ ] を全角の [ ] に置き換えるので、[To:] や [info] などのタグになりません
Webhook記録したままの値を JSON で送ります。受け取る側で、信頼できない値として扱ってください
メールテキスト形式だけ。件名はサイト名と決まった文言です

送信履歴と再送

「チャンネル」タブのいちばん下の 送信履歴 に、過去 30 日に各チャンネルへ送ったコピーの通知が、新しい順に 50 件まで並びます。急増アラートと転載アラートは載りません。

列内容
日時最初に送った日時
チャンネルSlack・Discord・Chatwork・Webhook
コピー数その通知に入っていたコピーの数
状態送信済み(緑)、失敗、次回の再送 日時(自動で送り直す予定がある)、失敗(自動の再送を終えた)。失敗のときは、その下に理由(例:「サービスがエラーを返しました (HTTP 500)。」)が出ます
試行回数最初の送信と自動の再送を合わせた回数
操作失敗したものに 今すぐ再送。押すとその場で送り、「もう一度送りました。」か「もう一度送りましたが、届きませんでした。…」が出ます

自動で送り直すのは、メールかほかのチャンネルには届いたのに、そのチャンネルにだけ届かなかった通知です。15 分後、1 時間後、3 時間後、6 時間後、12 時間後の 5 回まで、そのチャンネルにだけ送ります。どこにも届かなかった通知は、無料版の次のまとめで通知全体を送り直すので、ここでは送り直しません(二重に届かないように)。

  • 送り直すときは、そのときのログからメッセージを作り直します。送る訪問者の情報 を変えていれば、変えたあとの項目で送ります。ログから消えたコピーは入らず、1 件も残っていなければ「この通知のコピーは、もうログに残っていません。」で終わります。
  • Webhook には、最初の送信と同じ X-RCN-Delivery で送り直します。受け取る側で重複を捨てられます。
  • 再送は WP-Cron で動くので、訪問の少ないサイトでは予定の時刻より遅れることがあります。
  • 履歴は 30 日で消えます(自動の再送を待っているものは残ります)。

Webhook(JSON と署名)

独自の仕組み(社内のシステム、ノーコードの自動化サービスなど)へ、通知を JSON で POST します。受け取る側は 5 秒以内に 2xx を返してください。それ以外は失敗として扱います。

ヘッダー値
Content-Typeapplication/json; charset=utf-8
X-RCN-Eventcopies(コピーの通知)、test(テスト送信)、burst(急増アラート)、repost(転載アラート)
X-RCN-Delivery通知ごとの ID(UUID)。送り直すときも同じ値なので、受け取る側はこれで重複を捨てられます
X-RCN-Timestampそのリクエストを送った時刻(Unix 時刻、秒)。送り直すたびに新しくなります
X-RCN-Signature署名用の秘密値 を入れたときだけ。sha256= に続けて、X-RCN-Timestamp の値・.(ドット)・本文をつないだ文字列の HMAC-SHA256(16 進数の小文字)。Pro 1.1.3 までは本文だけの HMAC でした

コピーの通知の本文(1 回に 100 件まで。copied_text は全文):

{
  "event": "copies",
  "context": "digest",
  "site": "https://example.com/",
  "total": 1,
  "items": [
    {
      "id": 1234,
      "created_at": "2026-10-09T03:15:00+00:00",
      "post_id": 42,
      "post_title": "夏の庭仕事の手順",
      "post_url": "https://example.com/garden/",
      "copied_text": "水やりは朝の涼しいうちに、根元へゆっくり与えます。",
      "text_length": 25,
      "ip": "192.0.2.0",
      "user_agent": "Mozilla/5.0 (iPhone; …)",
      "referrer_host": "www.google.com",
      "paragraph_hash": "(40 桁の 16 進数。無いときは空文字)"
    }
  ]
}
  • context は instant(すぐ送る)、digest(1 時間ごとのまとめ)、test のどれかです。created_at は UTC です。
  • テスト送信では event と context が test になり、id と post_id は 0、記事のタイトルと URL は空です。
  • 急増アラートと転載アラートは形が違います: {"event": "burst", "context": "alert", "site": …, "heading": …, "data": {"post_id": 42, "copies": 12, "minutes": 10}}。転載では "data": {"matches": [{"post_id", "post_url", "url", "title"}, …]} です。
  • 実際の本文では、/ が \/、日本語が \uXXXX の形で送られます。JSON として読めば同じ値です。
  • 送る訪問者の情報 で外した項目は、キーは残して値を空文字にします(JSON の形は変わりません)。

署名の確かめ方(PHP の例)。受け取ったままの本文で計算し、JSON として読み直したものでは計算しないでください。時刻が 5 分より古いリクエストを断ると、盗み見たリクエストをあとから送り直されても受け付けません(リプレイ対策)。

$body      = file_get_contents( 'php://input' );
$secret    = '「チャンネル」タブに入れた署名用の秘密値';
$timestamp = isset( $_SERVER['HTTP_X_RCN_TIMESTAMP'] ) ? $_SERVER['HTTP_X_RCN_TIMESTAMP'] : '';
$given     = isset( $_SERVER['HTTP_X_RCN_SIGNATURE'] ) ? $_SERVER['HTTP_X_RCN_SIGNATURE'] : '';
$expected  = 'sha256=' . hash_hmac( 'sha256', $timestamp . '.' . $body, $secret );

if ( ! ctype_digit( $timestamp ) || abs( time() - (int) $timestamp ) > 300 || ! hash_equals( $expected, $given ) ) {
    http_response_code( 401 );
    exit;
}
// 同じ X-RCN-Delivery を受け取ったことがあれば、処理せずに 2xx を返す(重複)。
$data = json_decode( $body, true );
// $data['items'] の値は訪問者が送ったもの。表示するときは必ずエスケープする。
http_response_code( 204 );

Node.js の例:

const crypto = require('crypto');
// rawBody は受け取ったままの本文(Buffer)
const ts = req.get('X-RCN-Timestamp') || '';
const expected = 'sha256=' + crypto.createHmac('sha256', SECRET).update(ts + '.').update(rawBody).digest('hex');
const given = req.get('X-RCN-Signature') || '';
const fresh = /^\d+$/.test(ts) && Math.abs(Date.now() / 1000 - Number(ts)) <= 300;
const ok = fresh && given.length === expected.length &&
  crypto.timingSafeEqual(Buffer.from(given), Buffer.from(expected));
送り先の制限 HTTPS の URL だけを受け付け、保存するときと送るたびの両方で、localhost やプライベート IP のアドレスを断ります。リダイレクトには従いません。

04ルール

どのコピーをどこへ送るかを、記事・カテゴリー・コピーの長さで決めます。送り先は メール(無料版の Send notifications to のアドレス)・Slack・Discord・Chatwork・Webhook です。

Pro のルールタブ。振り分けルール、振り分けを試す、急増アラートと転載アラートの送り先

振り分けの決まり方

  • オンのルールが 1 つも無いときは、これまでどおり、すべてのコピーがメールとオンのチャンネル全部に届きます。
  • オンのルールが 1 つでもあれば、コピーは合ったルールすべての送り先へ届きます(重複しても 1 回だけ)。
  • どのルールにも合わないコピーは、下の設定に従います。
  • ルールで Slack などを選んでも、「チャンネル」タブでそのチャンネルがオンでなければ送りません。送り先の選択肢には「Slack (オフ)」のように「(オフ)」と出ます。
  • ルールは通知を絞るだけです。どのコピーも記録には残り、統計にも入ります。

一覧(振り分けルール)の列は ルール(名前。オフなら「(オフ)」)、対象(条件の要約)、送り先(何も選んでいなければ「なし (通知しない)」)、操作(編集 / 削除)です。削除 は確認なしで消えます。

ルールの欄

ルールを追加 で追加します。ルールは 20 個までです。

欄既定説明
名前 と オン空 / オン名前は 80 文字まで(空なら一覧に #番号)。オン を外すと、ルールを残したまま効かなくなります
投稿空記事の ID をカンマ区切りで(200 個まで)
カテゴリーなし投稿のカテゴリーをチェックで選びます(一覧に出るのは 200 個まで)
長さ0「N 文字以上」。この文字数以上のコピーだけに合います。0 は長さを問いません
送り先なしメール / Slack / Discord / Chatwork / Webhook から選びます。何も選ばなければ、合ったコピーを通知から外します(記録には残ります)

合う条件: 記事が 投稿 のどれかまたは カテゴリー のどれかに入っていて、かつコピーの文字数が 長さ の値以上。投稿 と カテゴリー の両方が空なら、すべての記事に合います。

例: 有料記事のコピーは Slack にも流し、ほかはメールだけ

ルール 1: カテゴリー =「有料記事」、送り先 = Slack。ルール 2: 投稿 と カテゴリー は空、送り先 = メール。有料記事のコピーは両方のルールに合うので、Slack とメールの両方に届きます。ほかの記事のコピーはルール 2 だけに合い、メールだけに届きます。ルール 2 がすべての記事に合うので、どのルールにも合わないコピー はこの例では効きません。通知のタイミング(すぐ/1 時間ごと)は、無料版の設定でサイト全体に 1 つです。

どのルールにも合わないコピー

その他の設定 の どのルールにも合わないコピー で選びます。オンのルールが 1 つ以上あるときだけ効きます。

  • すべてのチャンネルに送る(既定): メールとオンのチャンネル全部へ送ります。
  • 通知しない: 通知しません。記録には残ります。

振り分けを試す

ルールの一覧の下の 振り分けを試す で、投稿(新しい順に 100 件まで)と コピーした文字数 を選んで 送り先を表示 を押すと、その投稿のその長さのコピーが今のルールでどこへ送られるかを表示します。記録も送信もしません。

  • 「合うルール: ルール名。」と「送り先: メール, Slack。」のように出ます。合うルールが無ければ「どのルールにも合わないため、…の設定に従います。」、オンのルールが無ければ「オンのルールがないため、すべてのコピーをメールとオンのチャンネルすべてに送ります。」です。
  • どこにも送られないときは「どこにも送りません。コピーはログに記録されるだけです。」です。

オフのチャンネルの警告: ルールや、急増アラート・転載アラートの送り先に、「チャンネル」タブでオフになっているチャンネルを選ぶと、「Slack はオフのため、何も送られません。」と「チャンネル」タブへのリンクが出ます(ルールの一覧、その他の設定、振り分けを試すの結果)。保存したときも「ルールを保存しました。送り先の一部のチャンネルがオフのため、…」と黄色で知らせます。チャンネルを準備する前にルールを作れるよう、選ぶこと自体はできます。

急増アラート

1 つの記事が短いあいだに何度もコピーされたとき、まとめを待たずにすぐ知らせます。ルールとは別に動き、送り先も別に選びます。

欄既定範囲・説明
急増アラート(「1つの投稿が短時間に何度もコピーされたら、すぐに知らせる」)オフオンで有効
「M 分以内に N 回以上のコピー」の N102〜1,000 件
同じく M(分)101〜1,440 分
「知らせたあと、同じ投稿について次に知らせるまで N 分待ちます。」605〜1,440 分。同じ記事について次に知らせるまでの間隔
急増アラートの送り先:メールメール / Slack / Discord / Chatwork / Webhook。何も選ばなければ急増アラートは送りません
  • コピーが 1 件記録されるたびに、その記事の直近 M 分の件数を記録から数えます。無料版の流量制限で断られたコピーは記録されないので、数えません。
  • 見出しは「投稿がM分間にN回コピーされました」、中身は記事のタイトル・URL・件数です。メールの件名は「[サイト名] 投稿がM分間にN回コピーされました」で、テキスト形式です。

転載アラートの送り先

転載アラート の「「転載の検索」タブで見つかったページを知らせる送り先:」で、転載の検索が新しいページを見つけたときの送り先を選びます。既定はメールです。何も選ばなければ、見つけたページは「転載の検索」タブに並ぶだけで、知らせは送りません。

05転載の検索

何度もコピーされた段落が、ほかのサイトに載っていないかをウェブ検索で探します。既定はオフです。検索にはサイト運営者ご自身の検索 API キー(Brave Search API か SerpApi)を使い、検索の料金はそのサービスからご自身に請求されます。オンにしても、既定では、あなたが承認した段落だけを検索します(承認してから検索する)。

Pro の転載の検索タブ。見つかったページの一覧、承認を待つ段落、検索の設定

何をするか・何を送るか

  1. 1 日 1 回(オンにしてから約 1 時間後が最初)、過去 30 日に、異なる IP アドレスから 検索する段落の最低コピー回数 の回数以上コピーされた段落を、多い順に選びます。同じ IP アドレスからのコピーは、何回あっても 1 回と数えます。最近検索した段落(同じ段落を再検索するまでの間隔 の日数以内)と、検索しない にした段落は飛ばします。承認 がオン(既定)なら、承認した段落だけを選びます。
  2. 段落ごとに、直近 10 件のコピーを新しい順に見て、記事の本文に含まれている文を探し、その先頭 40 文字で "その文" -site:あなたのサイトのホスト名 を 1 回検索します。本文に無い文(訪問者が作った文など)や、12 文字に満たない文は検索しません。
  3. 結果の上位 10 件から、自分のサイトと 除外するドメイン のドメイン(サブドメインを含む)を除き、残ったページを記録します。同じ段落と同じ URL の組み合わせは 1 回だけ記録します。
  4. 新しく見つかったページがあれば、選んだ送り先へ「あなたのコンテンツを含む可能性のあるページがN件見つかりました」として知らせます(あなたの記事・見つかった URL・そのページのタイトル)。
検索サービスへ送るもの あなたが公開した記事の中の 40 文字以内の文と、検索結果から自分を除くためのサイトのホスト名だけです。訪問者の IP・ユーザーエージェント・参照元などは送りません。API キーをテスト のときは、サイト名で 1 回検索します。Brave Search API へは API キーをヘッダーで、SerpApi へは同社の仕様により URL のパラメーター(HTTPS)で送ります。

API キーを用意する

  • Brave Search API(brave.com/search/api): アカウントを作り、プランを選んでから、ダッシュボードで API キーを発行します。Brave 独自の検索インデックスを使い、料金は安いほうです。
  • SerpApi(serpapi.com): アカウントを作ると、ダッシュボードに API キーが表示されます。Google の検索結果を返すので、日本語のサイトをよく拾います。

プランと料金は各サービスのサイトでご確認ください。どちらのキーも、英数字・_・- の 16〜128 文字として受け付けます。

設定欄(検索の設定)

欄既定範囲・説明
転載の検索(「1日1回検索する」)オフ検索サービスと API キーがそろっていないと、チェックしてもオフのままです
検索サービス— 選択 —Brave Search API または SerpApi (Google)
API キー空保存後は末尾 4 文字だけ表示(「保存済みです。空欄のままなら変わりません。」)。空欄で保存すれば保存済みのキーを使い続け、削除 で消します。形が合わないと「設定を保存しましたが、API キーの形式が合わないため、API キーは変更していません。」
1日の検索回数201〜200。定期の検索と手動の検索を合わせた 1 日の上限(サイトのタイムゾーンの 0 時で戻ります)
同じ段落を再検索するまでの間隔7 日1〜90 日
検索する段落の最低コピー回数2 回1〜100 回(過去 30 日、異なる IP アドレスから)。画面では「回 (過去30日間、異なる IP アドレスから)」と続きます
承認(「承認した段落だけを検索する」)オンオンのあいだは、あなたが 承認 した段落だけを検索します。オフにすると、条件を満たした段落を自動で検索します(検索しない にした段落は除きます)
除外するドメイン空1 行に 1 つ(200 個まで)。自分の別サイトや、転載を許している相手など。サブドメインも含みます。このサイト自身は常に除きます

設定の上に「今日の検索: N回 / 上限20回。」と「次回の予定: 日時。」(オフなら「定期の検索はオフです。」)が出ます。その下に「今月の検索: N回。このペースだと、月末までに約M回です (1日の上限では最大K回)。…」が出ます。M に検索サービスの 1 回あたりの料金を掛けると、その月の費用の目安になります(料金は Pro には入っていないので、各サービスのページで確認してください)。

承認してから検索する

コピーの記録は訪問者のブラウザーから送られてくるので、誰でも送ることができます。承認 がオン(既定)のあいだは、条件を満たした段落もすぐには検索せず、タブの 検索する段落 に並べて、あなたの判断を待ちます。承認しない限り検索は行われず、検索サービスの料金もかかりません。

列内容
あなたの投稿コピーされた記事
フレーズ承認したときに検索に使われる文(記事の本文にある文だけ)。見つからなければ「フレーズなし: コピーされたテキストが短すぎるか、投稿に含まれていません。」と出ます
コピー数過去 30 日のコピーの回数
IP アドレス数そのうち、異なる IP アドレスの数(無料版で短くした形で数えます)
操作承認(フレーズがあるときだけ)、検索しない
  • 承認 した段落は、次の定期の検索(または 今すぐ検索)から対象になり、その後も 同じ段落を再検索するまでの間隔 ごとに検索します。
  • 検索しない にした段落は、承認 をオフにしても検索しません。
  • 判断した段落は、下の これまでの判断 に並びます(承認済み / 検索しない と判断した日)。取り消す で、承認待ちに戻ります。承認 がオフでも、判断した段落があればこの表は出ます。
  • 承認待ちの段落しかないときに 今すぐ検索 を押すと、「検索する承認済みの段落がありません。上の一覧に、承認を待っている段落があります。」と出ます。

費用と 1 日の上限

  • 検索 1 回ごとに、選んだ検索サービスの料金がご自身のアカウントにかかります。Pro の価格には含まれません。
  • 1日の検索回数 が 1 日の上限です。既定の 20 回なら、1 か月でおよそ 600 回が上限になります。
  • 検索サービスが「キーが違う」「上限に達した」などのエラーを返したら、その日の検索はそこでやめます。
  • 検索する段落が無い日は、検索しません(料金もかかりません)。承認 がオンなら、承認していない段落の分の検索は起きません。

いま実行する

  • API キーをテスト: サイト名で 1 回検索し、「検索サービスからN件の結果が返りました。API キーは使えます。」と出れば使えます。この 1 回も検索サービスの料金の対象です。
  • 今すぐ検索 (最大5回): 定期の検索と同じ処理を、今日の残りの範囲で最大 5 回行います。結果は「検索: N回。新しく見つかったページ: N件。」と出ます。

出るエラー:

表示対処
先に検索サービスを選んで、API キーを入力してください。検索サービスかキーが未設定です
検索サービスが API キーを受け付けませんでした。キーの誤り、またはそのサービスで無効になっています
検索サービスの利用枠または回数制限の上限に達しました。そのサービスのプランの上限です。翌日まで待つか、プランを見直してください
検索サービスに接続できませんでした。 / 検索サービスからエラーが返されました (HTTP N)。 / 検索サービスから読み取れない応答が返されました。通信の問題か、サービス側の障害です。時間をおいて試してください

見つかったページの確認

タブの上の あなたのコンテンツを含む可能性のあるページ に、見つかったページが新しい順に 50 件ずつ並びます。上の 未確認 / 転載と確認済み / 問題なし / すべて で絞り込みます(既定は「未確認」)。

列内容
検出日見つけた日
あなたの投稿コピーされたあなたの記事
見つかったページ見つかったページのタイトル(新しいタブで開きます)、ホスト名、検索結果の抜粋
検索した文検索に使った文
操作転載と確認、問題なし、未確認に戻す、削除(記録を消す)
  • 検索結果に載ったというだけで、転載と決まったわけではありません。引用や正当な紹介のこともあります。開いて確かめてから判断してください。
  • 問題なし にしたページは、同じ段落の検索でまた出ても知らせません。削除 すると記録が消えるので、次に見つかったときは「未確認」として戻り、また知らせます。黙らせたいページは「問題なし」にしてください。
  • 見つかったページのタイトルや抜粋は第三者の文字なので、画面ではすべてエスケープして表示します。リンクには noopener noreferrer nofollow を付け、http / https 以外のリンクは捨てます。

06CSV 書き出し

記録を CSV でダウンロードします。

Pro の CSV 書き出しタブ。期間と投稿を選んでログを CSV でダウンロードする
欄既定説明
期間29 日前 〜 今日開始日と終了日(どちらの日も含みます)。サイトのタイムゾーンの日付です。終了日が開始日より前なら「正しい期間を入力してください。」
投稿すべての投稿記録のある記事から 1 つ選べます

CSV をダウンロード を押すと rapls-copy-notice-年月日-時分秒.csv が保存されます。

  • 文字コードは UTF-8(BOM 付き)です。Excel で開いても日本語が化けません。
  • 列: 日時 / 投稿 ID / 投稿のタイトル / 投稿の URL / コピーされた文 / 長さ / IP / ユーザーエージェント / 参照元のホスト / 段落の指紋。日時はサイトのタイムゾーンです。
  • =・+・-・@・タブ・改行で始まるセルには、先頭に ' を付けます。表計算ソフトが数式として実行しないためです。
CSV には訪問者の情報が入ります IP アドレス(無料版の設定で短くしたもの)とユーザーエージェントが含まれます。保管と共有は、プライバシーポリシーに書いた範囲で行ってください。

07ネットワーク管理の画面

マルチサイトでは、ネットワーク管理 → 設定 → Rapls Copy Notice Pro に、ライセンスの欄とネットワーク全体の件数が出ます。特権管理者だけが開けます。

ネットワーク管理の Rapls Copy Notice Pro。ネットワークのライセンスと、サイトごとの過去 7 日間・30 日間のコピー数
  • ライセンス: 「1つのライセンスで、このネットワークのすべてのサイトに使えます。ライセンスはネットワークのメインのアドレスで登録します。」の下に、単一サイトと同じ有効化の欄があります。
  • ネットワーク全体のコピー(ライセンスが有効なときだけ): サイトごとに 7日間 と 30日間 の件数、最もコピーされた投稿 (30日間)(最もコピーされた記事と件数)。どちらも今の時刻から数えた直近の 7 日・30 日です。
  • サイト名を押すと、そのサイトの「統計」タブを開きます。無料版の記録の表がまだ無いサイトには「(未設定)」と出ます。
  • 1 ページに 50 サイトずつ並び、最後の行 このページのサイトの合計 はそのページの合計です。

08更新

Pro の更新は WordPress.org ではなく、Rapls Works の更新サーバー(ライセンスサーバーと同じ)から、WordPress のいつもの更新画面に届きます。自動更新を有効にしていれば、ほかのプラグインと同じように自動で更新されます。

  • 更新を受け取るには、有効なライセンスが必要です。ライセンスに期限はなく、有効なあいだはアップデートが届きます。サポートはご購入から 1 年間です。
  • 更新の確認は 12 時間ごとです。すぐに確かめたいときは ダッシュボード → 更新 の 再確認 を押してください。プラグイン 画面の 詳細を表示 で、変更履歴を見られます。
  • ライセンスキーは URL に載せず、リクエストのヘッダーで送ります。
  • ZIP はライセンスサーバーから HTTPS でだけ受け取り、インストールの前に大きさ(30 MB 未満)と SHA-256 のチェックサムを照合します。合わなければ「更新パッケージが整合性の確認に通らなかったため、インストールしませんでした。」と出て、何も入れ替えません。
  • 無料版が無い・古いあいだは、Pro は更新も確認しません。先に無料版を有効化・更新してください。

09削除(アンインストール)

プラグイン 画面で Pro を無効化すると、毎日のライセンス確認と転載の検索の予定を止めます。データは何も消えません。無効化してから 削除 すると、Pro が作ったものを消します。

消すもの内容
設定チャンネル(URL・トークンを含む)、ルール、転載の検索の設定(API キーを含む)、表のバージョンの記録
ライセンスキー・メールアドレス・状態(キーをデータベースに残さないため)。マルチサイトではネットワークに保存したものも消します
表見つかったページ {prefix}rapls_cn_pro_matches、検索済みの段落 {prefix}rapls_cn_pro_checks、承認の判断 {prefix}rapls_cn_pro_approvals、送信履歴 {prefix}rapls_cn_pro_deliveries(マルチサイトでは各サイトの分)
一時データと予定ライセンスの状態や更新情報の一時データ、急増アラートの間隔の記録、毎日の確認・転載の検索・再送・送信履歴の掃除の予定
コピーの記録は消しません。 記録は無料版のもので、Pro を削除しても無料版の Log タブにそのまま残ります。記録が消えるのは、無料版の保存期間を過ぎたとき、Log タブで消したとき、無料版を削除したときです。
  • 削除してもライセンスの枠は空きません。 ほかのサイトで使うなら、削除の前に「ライセンス」タブで無効化してください。
  • 無料版を削除すると、記録の表と無料版の設定が消えます。Pro の設定とライセンス(rapls_cn_pro_*)は残り、Pro を削除したときに消えます。
  • マルチサイトでサイトを削除すると、そのサイトの Pro の表も一緒に消えます。
  • サイト数の多いネットワーク: 削除は全サイトを 1 回のリクエストで順に処理します。サーバーの実行時間の上限で途中で止まることがあります。止まっても、もう一度削除すれば残りを消します(何度実行しても同じ結果になるように作ってあります)。残っていないかは、データベースで rapls_cn_pro_ で始まる表と設定を探すと確認できます。無料版の削除も同じです。

10困ったとき

Pro を入れたのにタブが増えない

  • 管理画面の上に、無料版についての赤い通知が出ていないか確認してください。無料版が無い・1.3.19 より古いと、Pro は何もしません。
  • マルチサイトでは、無料版と Pro の両方を「ネットワークで有効化」してください。

タブを開くと「この機能を使うには、Rapls Copy Notice Pro のライセンスを有効化してください。」と出る

ライセンスが有効化されていないか、サーバーが「無効」と答えました。「ライセンス」タブで有効化してください。ドメインを変えたばかりなら、新しいアドレスで有効化し直してください。

Slack などに届かない

  • 「チャンネル」タブで ここへ通知を送る がオンのまま保存されているか確認してください(URL やトークンが無いとオフに戻ります)。
  • テスト送信で届くか試してください。テストは届くのに通知が届かないなら、「ルール」タブを確認してください。オンのルールが 1 つでもあると、合ったルールの送り先にしか送りません。
  • 無料版の通知が「1 時間ごとのまとめ」なら、届くのは毎時です。まとめは WP-Cron で動くので、訪問の少ないサイトでは 1 時間を過ぎて最初の訪問のときに送られます。
  • テストも届かないなら、URL・トークン・ルーム ID と、サーバーから外へ HTTPS で出られるかを確認してください。
  • 「チャンネル」タブの送信履歴で、そのチャンネルへの送信が「失敗」になっていないか、理由と一緒に確認してください。直したら 今すぐ再送 で送り直せます。
  • 「ルール」タブに「… はオフのため、何も送られません。」が出ていれば、そのチャンネルを「チャンネル」タブでオンにしてください。振り分けを試すで、実際の送り先を確かめられます。

メールが来なくなった

ルールの 送り先 で メール を選んでいないと、そのルールに合ったコピーはメールに入りません。どのルールにも合わないコピーは、どのルールにも合わないコピー が 通知しない だと送りません。

急増アラートが来ない

急増アラート がオンで、急増アラートの送り先: に送り先が 1 つ以上あるか確認してください。一度知らせた記事は、待ち時間(既定 60 分)が過ぎるまで知らせません。

Webhook の署名が合わない

Pro 1.1.4 から、署名は「X-RCN-Timestamp の値 + . + 本文」に対して計算します(例)。本文だけで計算していると合いません。受け取ったままの本文(バイト列)で計算してください。JSON を読み直して並べ替えたり、空白を整えたりすると合いません。秘密値の前後に空白が入っていないかも確認してください。受け取る側の時計が 5 分以上ずれていると、時刻の確認で断られます。

「統計」の段落の表が空

段落の指紋が無いコピーだけの記事です。HTTPS でないページ、段落の外からのコピー、無料版 1.2 より前の記録には指紋がありません(詳しく)。

転載の検索が動かない

  • 転載の検索 は、検索サービスとキーがそろわないとオンになりません。
  • 「次回の予定」の日時を確認してください。WP-Cron で動くので、訪問の少ないサイトでは遅れます。
  • 検索する段落が無いことがあります。検索する段落の最低コピー回数 を下げるか、段落の指紋のあるコピーがたまるのを待ってください。
  • 「今日の検索」が上限に達していれば、翌日まで検索しません。

CSV を Excel で開くと 1 列に詰まる

区切り文字はカンマです。Excel の地域設定で区切りが違う場合は、「データ → テキストまたは CSV から」で読み込み、区切り記号に「コンマ」を選んでください。

11よくある質問

サブスクリプションですか? 1 年で止まりますか?

買い切りです。ライセンスに期限はなく、1 年を過ぎても止まりません。サポートはご購入から 1 年間です。

ライセンスサーバーが止まったら、サイトはどうなりますか?

何も起きません。サーバーに届かないあいだも Pro はそのまま動きます。止まるのは、サーバーがはっきり「無効」と答えたときだけです。

Pro はコピーを防ぎますか?

いいえ。無料版と同じく、コピー・右クリック・文字の選択を止める機能はありません。知らせて、記録して、探すだけです。

Pro を入れると、訪問者の情報が外へ送られますか?

オンにしたチャンネルへは、通知の中身(コピーされた文、記事、短くした IP、ユーザーエージェント)を送ります。転載の検索で検索サービスに送るのは、あなたの記事の文とサイトのホスト名だけです。オンにするまで、どちらへも何も送りません。

編集者や投稿者も使えますか?

Pro のタブはすべて管理者(manage_options)だけです。マルチサイトのライセンスは特権管理者が管理します。

返金はできますか?

特定商取引法に基づく表記の「返品・交換・キャンセルについて」をご覧ください。

タイトルとURLをコピーしました