『7回目の出直し🌻』

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

Google APIの認証ファイルの作り方

サイトマップちゃんと!を動かすのに必要なGoogle のAPI認証ファイルの作りかたです。

Google Cloud Platformのアカウントが必要なので、持っていない場合は作っておいてください。

console.cloud.google.com

プロジェクトを作成

まずは専用のプロジェクトを作ります。他のプロジェクトにサービスアカウントを追加することもできますが、専用で1つ作ります。

Google Cloud Platform画面

ヘッダのプロジェクト名の隣にある▼を押します。
f:id:kanaxx43:20200802154014p:plain

プロジェクト一覧画面

右上の「新しいプロジェクト」押します。
f:id:kanaxx43:20200802154852p:plain

プロジェクト作成画面

プロジェクト名を決めます。プロジェクトIDは勝手に振られますが「編集」ボタンを押すと自分で決められます。
f:id:kanaxx43:20200802154142p:plain

必要な情報を入力し「作成」を押します。 f:id:kanaxx43:20200802154908p:plain

これで、プロジェクトが作成できました。

利用するAPIの設定

作ったプロジェクトに対してAPIを設定します。

Google Cloud Platformの画面

左ナビの「APIとサービス」>「ダッシュボード」をクリックしてAPIの設定画面へ行きます。
f:id:kanaxx43:20200802155001p:plain

使うAPIを選択

画面一番上にある「検索ボックス」から「Search Console API」を検索して、
f:id:kanaxx43:20200802161945p:plain

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

手順を2回繰り返し、Search Console APISearch Console API LEGACYの両方を有効にします。

APIが登録された画面

一覧画面にAPIが2つ表示されていればOKです。
f:id:kanaxx43:20200802162157p:plain

サービスアカウントの作成

プロジェクトとAPIの設定が終わったら、プログラムからAPIを利用するための認証情報を設定します。

Google Cloud Platform画面

左ナビの「認証情報」を押します。
f:id:kanaxx43:20200802162325p:plain

登録済みの認証一覧画面

何もない状態なので、画面上の認証の追加をクリックし、
f:id:kanaxx43:20200802155157p:plain

サービスアカウントを選択します。
f:id:kanaxx43:20200802155244p:plain

サービスアカウントの作成

1.ユーザ名の設定

分かりやすいように、お好みで設定してください f:id:kanaxx43:20200802163735p:plain

2.権限の設定

権限は、プロジェクトの参照者に設定します。プロジェクトのオーナーでも問題ないですが、権限は狭いほうがよいです。
f:id:kanaxx43:20200802163738p:plain

3.別アカウントからの参照

この画面は何もしないで「完了」です
f:id:kanaxx43:20200802163742p:plain

認証ファイルの設定

プロジェクトを作り、プロジェクトにサービスアカウントを作ったら、サービスアカウントに認証ファイルを設定します。

サービスアカウント一覧画面

メールアドレス部分をクリック f:id:kanaxx43:20200802165509p:plain

サービスアカウントの詳細

画面下のほうにある鍵の追加(新しい鍵の作成)を押します f:id:kanaxx43:20200802165705p:plain

鍵作成のダイアログ

JSON形式を選んだまま、「作成」ボタンを押します f:id:kanaxx43:20200802165911p:plain

鍵ファイルを取得

ブラウザに鍵ファイルがダウンロードされるので、保存しておきます。 f:id:kanaxx43:20200802170139p:plain

サーチコンソール登録

サービスアカウントをサーチコンソールに設定します。

サーチコンソール

サーチコンソールの左ナビの下のほうにある「設定」をクリック
f:id:kanaxx43:20200802171407p:plain

設定画面

設定画面の「ユーザと権限」のくの字をクリック f:id:kanaxx43:20200802171523p:plain

ユーザ一覧

ユーザ一覧が出るので、上にあるユーザの追加ボタンをクリック f:id:kanaxx43:20200802171707p:plain

ユーザ追加ダイアログ

ユーザ追加のダイアログが開くので、サービスアカウントのメールアドレスを入力します。権限を「制限」にするとAPIでサイトマップの参照ができ、「フル」にするとサイトマップの更新ができます。最後に「登録」ボタンを押します。
f:id:kanaxx43:20200802171817p:plain

ユーザ一覧

ユーザ一覧が一人増えた状態になればOKです。
f:id:kanaxx43:20200802172108p:plain

この先はメモ書き

Search Consle APIとIndexing APIは同じサービスアカウントと認証情報を使える。ただし、作業順を間違うとパーミションエラーになるので気を付ける。

Search Console APIに必要なもの

  • Search Consoleにサービスアカウントのメールアドレス登録
  • サーチコンソールで作業

Indexing APIに必要なもの

順番に気を付ける

ウェブマスターツールで所有者を付ける → サーチコンソールではオーナーとして見える

  • 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も両方使える状態になる。