((7回目の出直し🌼))

好きなことを自分のペースで、のんびり更新

GoogleのIndexing APIを使って、サイトの更新情報を通知する(1)準備まで

Google Indexing APIを使って、ブログのURLを直接Googleに伝えよう!

はじめに

前回の実験で、Search Consoleから手作業でURL単位の更新リクエストを送ると、Googleのクローラーがタイムリーな感じでクローリングしてくれることがわかりました。リクエストから5分~10分くらいで見に来てくれました。これを使わない手はない!

ただ、150個もあるURLをちくちく手作業でやってられないのですね。ということで、ここはプログラムの出番です。
自作のプログラムからGoogle Indexing APIを呼び出し、自動的に更新リクエストを投げ込むことにします。

参考にするドキュメント

https://developers.google.com/search/apis/indexing-api/v3/prereqs

前準備が長いので、APIが使えるところまでを記事にします。プログラム作成は次の機会に

お断りです

Google Indexing APIは、特殊なデータが埋め込まれたページで使えると書いてありました。

f:id:kanaxx43:20200620145940p:plain

現在、Indexing API は、JobPosting または BroadcastEvent が VideoObject に埋め込まれたページをクロールするためにのみ使用できます。

ダメ元でAPIを呼び出してみたら、クローラーがやってきてインデックスが更新されました。
公式に使えるようになったのか、たまたま使えたのかは未確認事項です。今後もずっと使い続けることができるのかは分かりません。悪い影響があっても責任は取れませんのでご注意ください。

はまりポイント

Google Search Consoleが新しくなったため、ドキュメント通りにやっても上手くいかないところがあります。その部分だけは旧版のウェブマスターセントラルで実施する必要があります。

画面には「確認済みのプロパティ」というのが無かったので、おかしいとは思ったのですが全く気が付かず。どうやっても403 Forbiddenが返ってきてしまい、諦めかけたところでこの記事に出会いました。
https://qiita.com/kuro96al/items/b9552d8f2c998fa84d43

Google Inedx APIで、[ドキュメントどおりに所有者設定](https://developers.google.com/search/apis/indexing-api/v3/prereqs#verify-site)をしたにも関わらず、https://indexing.googleapis.com/v3/urlNotifications:publish から 403 Forbiddenが返ってきてしまう場合は、Webmaster Tool(ウェブマスターツール/ウェブマスターセントラル)で「確認済みのプロパティ」を設定する必要があります!

助かった、ありがとうございます。

使うもの

今回、前準備段階で使うのはこの2つです

  • Google Index API
  • Google API Console or Cloud Console

APIを使えるところまでの準備

スクショがいっぱいなので本文は長いですが、内容は簡単です。

Google API Consoleでの作業

まずはAPIの準備です。
今回はIndexing API用のプロジェクトを作って、新規のプロジェクトに対してサービスアカウントの設定も行います。
既存のプロジェクトを持っている人は、適当に読み替えながら進んでください。

新しいプロジェクトを作る

f:id:kanaxx43:20200620151600p:plain
https://console.developers.google.com/apis/dashboard で作業します

リソースの管理画面へ行き、「プロジェクトを作成」を押す
f:id:kanaxx43:20200620152000p:plain

新しいプロジェクトの設定画面。名前とプロジェクトIDはお好みで入力して「作成」ボタン
f:id:kanaxx43:20200620140603p:plain

Index APIを有効にする

プロジェクトができたら、プロジェクトにAPIを追加します。
f:id:kanaxx43:20200620140658p:plain

APIの選択画面で、「Index API」を探して
f:id:kanaxx43:20200620140814p:plain f:id:kanaxx43:20200620140842p:plain

有効にするボタンを押し f:id:kanaxx43:20200620140913p:plain

プロジェクトでIndexAPIが使えるようになります
f:id:kanaxx43:20200620141027p:plain

サービスアカウントの追加

次は、プロジェクトにサービスアカウントを追加します。

左メニューの「認証情報」から画面を開きます。
f:id:kanaxx43:20200620141232p:plain

まだ何もない状態です。
画面上にある「認証情報を作成」を押し、「サービスアカウント」を選ぶと設定画面が出てきます。
f:id:kanaxx43:20200620141341p:plain

赤枠はお好みで入力してください。終わったら「続行」ボタンを押し
f:id:kanaxx43:20200620141424p:plain

次の画面は権限の設定です。オーナーに設定し「続行」
f:id:kanaxx43:20200620141543p:plain

ステップ3は、何もせずに完了します
f:id:kanaxx43:20200620141641p:plain

ここまででサービスアカウントが1つ追加できた状態です。
f:id:kanaxx43:20200620141754p:plain

サービスアカウントに認証キーを設定

作ったサービスアカウントの編集ボタンを押し
f:id:kanaxx43:20200620141925p:plain

編集画面が開きます。上段、中段は変更なしでよくて、一番下までいきます
f:id:kanaxx43:20200620142420p:plain

鍵を追加>新しい鍵を作成で f:id:kanaxx43:20200620142452p:plain

JSONを選んで「作成」ボタン
f:id:kanaxx43:20200620142512p:plain

ダイアログが閉じてJSON形式のファイルが落ちてきます。このファイルはあとで使います。
f:id:kanaxx43:20200620142829p:plain

これでサービスアカウントの設定は終わりです。

Search Consoleとウェブマスターツール

次は、サイト側の設定をします。Indexing APIドキュメントのこの部分です。 f:id:kanaxx43:20200620143245p:plain

ウェブマスターツールにログイン

2の部分です。
ドキュメントだとサーチコンソールになっていますが、ウェブマスターツールに入ります。2020年6月20日時点ではサーチコンソールではできません。

ウェブマスターツールはここから↓
https://www.google.com/webmasters/verification/home?hl=ja

2021年9月追記

サーチコンソールから、ウェブマスターツールに行くことができるようになっていました。 複数人いる場合は誰のところでもよいので、三点オプションを触って「プロパティ所有者の管理」を押します。 f:id:kanaxx43:20210912182818p:plain

手順

自分の管理したいドメインが出ているはずなので、「詳細の確認」を押します f:id:kanaxx43:20200620143453p:plain

画面下のほうのサイト管理者欄にある、ボタンを押します f:id:kanaxx43:20200620143601p:plain

メールアドレスの入力欄が出てくるので、前の手順で作ったサービスユーザのメールアドレスを入れます。
入力したメールアドレスを忘れてしまった場合は、ダウンロードしたJSONファイルから探しましょう。
f:id:kanaxx43:20200620143833p:plain

JSONファイルにあるclient_emailの値です。

{
  "type": "service_account",
  "project_id": "",
  "private_key_id": "",
  "private_key": "-----BEGIN PRIVATE KEY-----
\n-----END PRIVATE KEY-----\n",
  "client_email": "★ここです",
  "client_id": "",
  "auth_uri": "",
  "token_uri": "",
  "auth_provider_x509_cert_url": "",
  "client_x509_cert_url": ""
}

画面が切り替わり、2人目ができてればOKです
f:id:kanaxx43:20200620143757p:plain

サーチコンソール

サーチコンソールでは作業はありません。確認のみです。

左側の設定メニューからユーザ権限の一覧へ行って f:id:kanaxx43:20200620144225p:plain

2人目のサービスアカウントがオーナーとして登録されていることを確認です f:id:kanaxx43:20200620144355p:plain

まとめ

今回は下準備までのため、ここで終わりです。認証のところで躓かなければもっと早く終わったのに。とっても疲れました。

次の記事では、ブログの全URLを拾ってきて、ゴリゴリとAPIにリクエストを投げるプログラムを作ります。

kanaxx.hatenablog.jp

参考資料

Index API クイックスタート
https://developers.google.com/search/apis/indexing-api/v3/quickstart

Google Search Consoleのコミュニティーのスレッド
- Index API: Permission denied. Failed to verify the URL ownership.
https://support.google.com/webmasters/thread/4763732?hl=en&msgid=6359270

ウェブマスターセントラル
https://www.google.com/webmasters/verification/home?hl=ja

Googleのコンソール
https://console.developers.google.com/apis/dashboard
https://console.cloud.google.com/apis/dashboard