サイトマップちゃんと!を動かすのに必要なGoogle のAPI認証ファイルの作りかたです。
Google Cloud Platformのアカウントが必要なので、持っていない場合は作っておいてください。
プロジェクトを作成
まずは専用のプロジェクトを作ります。他のプロジェクトにサービスアカウントを追加することもできますが、専用で1つ作ります。
ヘッダのプロジェクト名の隣にある▼を押します。
右上の「新しいプロジェクト」押します。
プロジェクト名を決めます。プロジェクトIDは勝手に振られますが「編集」ボタンを押すと自分で決められます。
必要な情報を入力し「作成」を押します。
これで、プロジェクトが作成できました。
利用するAPIの設定
作ったプロジェクトに対してAPIを設定します。
左ナビの「APIとサービス」>「ダッシュボード」をクリックしてAPIの設定画面へ行きます。
画面一番上にある「検索ボックス」から「Search Console API」を検索して、
有効にするボタンを押します。
手順を2回繰り返し、Search Console APIとSearch Console API LEGACYの両方を有効にします。
一覧画面にAPIが2つ表示されていればOKです。
サービスアカウントの作成
プロジェクトとAPIの設定が終わったら、プログラムからAPIを利用するための認証情報を設定します。
左ナビの「認証情報」を押します。
何もない状態なので、画面上の認証の追加をクリックし、
サービスアカウントを選択します。
サービスアカウントの作成
分かりやすいように、お好みで設定してください
権限は、プロジェクトの参照者に設定します。プロジェクトのオーナーでも問題ないですが、権限は狭いほうがよいです。
この画面は何もしないで「完了」です
認証ファイルの設定
プロジェクトを作り、プロジェクトにサービスアカウントを作ったら、サービスアカウントに認証ファイルを設定します。
メールアドレス部分をクリック
画面下のほうにある鍵の追加(新しい鍵の作成)を押します
JSON形式を選んだまま、「作成」ボタンを押します
ブラウザに鍵ファイルがダウンロードされるので、保存しておきます。
サーチコンソール登録
サービスアカウントをサーチコンソールに設定します。
サーチコンソールの左ナビの下のほうにある「設定」をクリック
設定画面の「ユーザと権限」のくの字をクリック
ユーザ一覧が出るので、上にあるユーザの追加ボタンをクリック
ユーザ追加のダイアログが開くので、サービスアカウントのメールアドレスを入力します。権限を「制限」にするとAPIでサイトマップの参照ができ、「フル」にするとサイトマップの更新ができます。最後に「登録」ボタンを押します。
ユーザ一覧が一人増えた状態になればOKです。
この先はメモ書き
Search Consle APIとIndexing APIは同じサービスアカウントと認証情報を使える。ただし、作業順を間違うとパーミションエラーになるので気を付ける。
Search Console APIに必要なもの
- Search Consoleにサービスアカウントのメールアドレス登録
- サーチコンソールで作業
Indexing APIに必要なもの
- Search Consoleの所有者(オーナー)の権限
- ウェブマスターツールで作業
順番に気を付ける
ウェブマスターツールで所有者を付ける → サーチコンソールではオーナーとして見える
- Search Console APIはエラーになる
- Indexing APIは利用可能
この後に、サーチコンソール側でユーザを登録すると、サーチコンソール側がオーナーでなくなる。
- Search Console APIが使える状態
- Indexing APIはエラーになる (えっ!!)
Search Consoleで操作した時点で、ウェブマスターツール側に「割り当てられた所有権を xxx@gmail.com が取り消しました。」とメッセージが出ているので、サーチコンソール側の操作により、サービスアカウントの所有権がはく奪されてる。
うまくやるには
Search Consoleにユーザ登録のあとに、ウェブマスターツールで所有権を付ける
サーチコンソールのユーザ追加で(権限はフルでも制限でもOK)を付ける
- Search Console APIは可能
- Indexing APIはエラー
この後に、ウェブマスターツールで所有者を付ける。サーチコンソールのユーザ一覧では、「制限」だったのが「オーナー」に変わる。 オーナーの表示なのに、Search Console APIもIndexing APIも両方使える状態になる。