Skip to content

ADM-11 min-repo データ取得 管理画面

概要

  • min-repo.com からの 差枚データ取得・インポート、Cookie 設定、HTML インポート、本番転送、CSV エクスポートを行うローカル専用管理画面。
  • 定数 MIN_REPO_SCRAPE_COOKIE が定義されている場合は定数が優先され、オプション値は min_repo_scrape_cookie フィルター経由で参照される(未定義時にオプションが供給される)。
  • 手動貼り付け保存に加え、ローカルヘルパーから REST API で送信する経路を案内する。

外部インターフェース

管理画面 URL

項目
URL/wp-admin/admin.php?page=min-repo-data-admin
メニュー名min-repo データ取得
権限manage_options

フォーム POST(同期)

POST admin.php?page=min-repo-data-admin

min_repo_cookie_action処理
saveCookie 保存

Nonce フィールド: min_repo_cookie_nonce(検証アクション: min_repo_cookie_admin

POST パラメータ

フィールド説明
min_repo_cookie_value生 Cookie 文字列。制御文字除去・前後 trim。最大長は MinRepoCookieOption::MAX_COOKIE_LENGTH(8192 バイト)

リダイレクト後クエリ(通知)

クエリ内容
mrc_success1 / 0
mrc_msgメッセージ

REST API(ヘルパー用)

項目
メソッドPOST
ルート/wp-json/slot-kouryaku/v1/min-repo-cookierest_url( 'slot-kouryaku/v1/min-repo-cookie' )
ボディJSON {"cookie":"..."}cookie 必須。印字可能 ASCII のみ許可など検証あり)
認証アプリケーションパスワードによる Basic 認証(画面内ヘルプ参照)。実装は MinRepoCookieHandlerPermissionChecker

成功時 HTTP 200、失敗時 400 / 500 と message を JSON で返す。

データ

wp_options

キー説明
slot_kouryaku_min_repo_scrape_cookie保存 Cookie 文字列(MinRepoCookieOption::OPTION_NAME

エラー

条件ユーザー向け挙動メッセージ例
nonce 不正リダイレクトMessages::AUTH_FAILED
Cookie 空リダイレクトMinRepoMessages::COOKIE_PLEASE_INPUT
長さ超過リダイレクトMinRepoMessages::COOKIE_TOO_LONG(フォーマット付き)
update_option 失敗リダイレクトMinRepoMessages::COOKIE_SAVE_FAILED

変更履歴(設計書)

日付(JST)変更内容コード側の対応(PR 等)
2026-04-21初版作成
2026-07-07「対象ページを開く」ボタンの検証ログセクションを追加PR #2655
2026-07-07試行2失敗(HTTP 401)を記録し、試行3(固定URL)を採用PR #2655
2026-07-07ボタンラベル・説明文の整理、未使用 hallTagIds 削除PR #2656

検証ログ(データ一覧ページを開くボタン)

HTML インポートセクションの「データ一覧ページを開く」ボタンについて、試行した方式と結果を記録する。

試行方式結果詳細
1クライアント(ブラウザ)から min-repo.com の REST API へ直接 fetch()失敗Failed to fetch。CORS または WAF によりブロックされたと推定
2サーバー側 wp_remote_get() 経由(admin-ajax、Chrome UA・ブラウザヘッダー付与、24時間 Transient キャッシュ)失敗REST API が HTTP 401 を返却(fetch_json failed ... reason=HTTP 401)。未認証の自動アクセスは min-repo.com 側で拒否されたと推定。フォールバックでデータ一覧ページは開けた
3ホール別固定 URL(データ一覧ページ)を直接開く(REST API 不使用)採用試行1・2と同様のブロックを回避。ユーザーが一覧から該当日の記事を手動で開く運用

失敗した場合は HTTP ステータス・レスポンスヘッダー等(WP_DEBUG 時のログ参照)も追記する。