skip to content
barorin&?

GoogleのIndexing APIをPythonから叩いてみる

/ 2 min read

Table of Contents

はじめに

Google Search Consoleで「検出 - インデックス未登録」となっているURLに対してリクエストを出すPythonコードと 関連する設定をまとめてみました。

方法

Google Cloud上の設定

まだプロジェクトを作成していない場合は作成しておく

  1. APIとサービス > +APIとサービスの有効化 > Web Search Indexing APIを検索して有効化
  2. APIとサービス > 認証情報 > +認証情報を作成 > サービスアカウント
    • サービスアカウントの詳細
      • サービスアカウント名: 好きなもの
      • サービスアカウントID: 自動入力
        • ここで作成されるメールアドレスをメモっておく!
      • サービスアカウントの説明: 空欄でも可
    • このサービスアカウントにプロジェクトへのアクセスを許可する(省略可)
      • ロール: オーナー
    • ユーザーにこのサービスアカウントへのアクセスを許可(省略可)
      • 空欄のまま完了
  3. APIとサービス > 認証情報 > +認証情報を作成 > サービスアカウント > 作成したアカウントの編集画面に > キー > 鍵を追加 > 新しい鍵を作成
    • キーのタイプ: JSON

Google Search Console上の設定

  • 設定 > ユーザーと権限 > ユーザーを追加
    • メールアドレス: 上記でメモったメールアドレス
    • 権限: オーナー

Python

ライブラリのインストール

Terminal window
$ pip install google-auth google-api-python-client

スクリプト

def request_indexing(url):
# サービスアカウントのJSON鍵ファイルへのパス
KEY_FILE = 'path/to/your.json'
# インデックス登録したいURL
url = 'https://example.com'
# サービスアカウントの認証情報を設定
credentials = service_account.Credentials.from_service_account_file(
KEY_FILE, scopes=['https://www.googleapis.com/auth/indexing'])
# Google Indexing APIのサービスを構築
service = googleapiclient.discovery.build('indexing', 'v3', credentials=credentials)
# インデックス登録のリクエストを作成
body = {
'url': url,
'type': 'URL_UPDATED'
}
# リクエストを実行
response = service.urlNotifications().publish(body=body).execute()
# レスポンスを表示
print(response)