Python スクリプトを使用して Data Portability API を呼び出す

このクイックスタートでは、アカウントの OAuth トークンを取得し、Python スクリプトを使用して Data Portability API エンドポイントにリクエストを送信します。

学習内容

このクイックスタートでは、Python スクリプトを使用して次の操作を行います。

  • 有効な OAuth トークンを指定して、認証されたリクエストを InitiatePortabilityArchive エンドポイントに送信します。レスポンスは有効な job_id です。
  • 認証済みリクエストを GetPortabilityArchiveState エンドポイントに送信して、データをダウンロードします。レスポンスには有効なジョブ状態が含まれ、ジョブが完了している場合は署名付き URL が含まれます。
  • 後で再利用できるように、時間ベースのアクセス権を持つ OAuth トークンを保存します。
  • 認証済みリクエストを ResetAuthorization エンドポイントに送信します。このリクエストにより、ユーザーが付与したすべての OAuth スコープが取り消されます。
  • 有効な OAuth トークンと start_time または end_time を指定して、InitiatePortabilityArchive エンドポイントに認証済みリクエストを送信し、リクエストに時間フィルタを適用します。

前提条件

このクイックスタートを実行するには、以下が必要です。

  • Data Portability API が利用可能であることを確認します。サポートされている国と地域の一覧については、[データのコピーをサードパーティと共有する] ページのよくある質問をご覧ください。
  • Data Portability API の設定手順を完了し、新しいプロジェクトを使用していることを確認します。
  • 組織が所有または管理するアカウントへのアクセス権を取得します。このクイックスタートでは、このアカウントの検索アクティビティ データがエクスポートされます。

このクイックスタートを開始する前に、OAuth、Python、Python クライアント ライブラリの OAuth パッケージも設定する必要があります。

OAuth を設定する

  • 手順に沿って、インストール済みのアプリの OAuth を構成します。このフローは、ウェブサーバー アプリケーションの OAuth フローに似ています。OAuth クライアント ID を構成する際は、次の点に注意してください。
    • [アプリケーションの種類] は [デスクトップ アプリ] にする必要があります。
    • クライアント ID を作成したら、クライアント シークレットを JSON 形式でダウンロードし、ファイル名を client_secrets.json にします。
    • Data Portability API のスコープを構成する際は、このクイックスタートで次のリソース グループを使用する点に注意してください。

Python を設定する

このクイックスタートで使用するスクリプトを実行するには、ローカルマシンに Python を設定する必要があります。Python を設定するには:

  • Pip パッケージ管理ツールと Python 3.11 以降をインストールします。
  • Python 用 Google API クライアント ライブラリをインストールします。
  • 次のコマンドを実行して、Python クライアント ライブラリの google_auth_oauthlib パッケージをインストールします。このパッケージは、google-auth(Python 用の Google 認証ライブラリ)と oauthlib を統合します。

    pip install google-auth-oauthlib google-api-python-client --upgrade

スクリプトを実行する

このスクリプトでは、OAuth フロー内で localhost リダイレクトを使用します。このオプションでは、アプリケーションが localhost ポートでリッスンし、システム ブラウザを開いて OAuth 認可フローを開始する必要があります。

このリンクをクリックしてスクリプトを開くか、リンクを右クリックしてスクリプトのコピーをダウンロードします。

Data Portability API Python クイックスタート スクリプト

スクリプトを実行して完全なデータコーパスをエクスポートするには、次のコマンドを入力します。

python3 data-portability-quickstart.py

異なるスコープを使用するには、--resources を使用して指定します。次に例を示します。

python3 data-portability-quickstart.py --resources myactivity.shopping myactivity.play

時間フィルタリングを適用するには、start_time フラグと end_time フラグを使用して同じスクリプトを使用します。次に例を示します。

python3 data-portability-quickstart.py --start_time 2023-01-01T12:00:00Z --end_time 2024-01-01T12:00:00Z

スクリプトによって実行されるアクションは、コメントに詳細に記載されています。