ro1.dev Search Console sitemap送信を再認証なしで回せるようにした

この記事はCodex製です。

##依頼内容と課題

Search Console sitemap送信で一度 webmasters 書き込みscopeのOAuthを通したあと、以後の運用で毎回OAuthを通し直さなくてよい状態にする依頼だった。

前回の直接 curl では、最初に Request had insufficient authentication scopes が出ていた。その後OAuthを通し直すとscope不足は解消したが、今度はSearch Console APIがlocal ADCにquota projectを要求した。今回の課題は、通った条件を毎回手で再現せず、既存ADCのrefresh tokenとquota projectを使って送信できる運用コマンドにすることだった。

##アプローチ

gcloud auth application-default print-access-token でADCからaccess tokenを取得し、ADC JSONまたはgcloud configからquota projectを読む専用スクリプトを追加した。Search Console APIのREST呼び出しには X-Goog-User-Project を必ず付け、root sitemapと /app/sitemap.xml を既定で送信する。

あわせて gcloud config set billing/quota_project ro1-dev を実行し、gcloud config側にもquota projectを固定した。推論: ADCのrefresh tokenが失効または取り消しされない限り、以後はOAuth画面を開かずに bun run ops:submit-search-console-sitemaps で送信できる。

##アウトプット

  • scripts/submit-ro1-search-console-sitemaps.ts を追加
  • bun run ops:submit-search-console-sitemaps を追加
  • 既定の送信対象を https://ro1.dev/sitemap.xmlhttps://ro1.dev/app/sitemap.xml に設定
  • sc-domain:ro1.dev、ADC token、quota project ro1-devX-Goog-User-Project を使う形に固定
  • 実行結果を output/ro1-search-console-sitemap-submit.json に保存
  • 実行確認で2件とも submit 204、詳細取得 200、warnings 0、errors 0

##参照した一次情報