【GCP】スプレッドシートをAPIから編集するための準備

Google Cloud Platform

どーも!marusukeです!

スプレッドシートをAPIから編集するための準備方法について説明します!

なぜAPIでスプレッドシートを編集するのか

例えばですが、自作したアプリケーションが、どこかのWEBサイトなどからスクレイピングして取得したデータなどを自動でスプレッドシートに書きこむ時、スプレッドシートAPIやGoogle Cloud Pratformの認証を設定しておく必要があります。また、スプレッドシートにデータを書き込むには編集者以上のアクセス権を持っておく必要があります

なので、以下の設定が必要になります

  • Google Cloud Pratform内のプロジェクトの「スプレッドシートAPI」を有効化しておく必要がある
  • Google Cloud Pratform内のプロジェクトの認証情報(jsonファイル)をダウンロードし、自作アプリケーションに持たせておき、環境変数などに認証情報(jsonファイル)のファイルパスを設定しておく必要がある
  • 編集したいスプレッドシートに、アプリケーション用のサービスアカウントを追加登録する必要がある

上記3つの事前準備方法について説明していきます!

※ちなみにサービスアカウントとは以下です

サービス アカウントとは

サービス アカウントは、ユーザーではなく、アプリケーションや Compute Engine インスタンスなどのコンピューティング ワークロードで通常使用される特別なアカウントです。サービス アカウントは、アカウント固有のメールアドレスで識別されます。

https://cloud.google.com/iam/docs/service-account-overview?hl=ja#what-are-service-accounts

スプレッドシートAPIを有効化する方法

スプレッドシートAPIを有効にする方法は以下です

  • Google Cloud Consoleにログインする
  • コンソールにログイン後、プロジェクトを作成(または既存プロジェクトを選択)する
  • スプレッドシートAPIを有効にする

Google Cloud Consoleにログインする

Google Cloud Console にアクセスし、Googleアカウントでログインします。(Gmailとパスワードの入力を求められます)

ログインすると右上に「コンソール」ボタンが表示されるので、「コンソール」ボタンをクリックします

プロジェクトを作成(または既存プロジェクトを選択)する

画面左上の①のドロップダウンをクリックし、②プロジェクトを作成(または既存のプロジェクトを選択)します

これでプロジェクトを作成(または既存プロジェクトを選択)できました!

次はAPIを有効化します!

スプレッドシートAPIを有効にする

「APIとサービスを有効にする」をクリックします

「Google Sheets API」を検索し、選択します

「有効にする」をクリックします

これでスプレッドシートAPIを有効にできました!

次は認証情報(jsomファイル)をダウンロードします!

認証情報(jsonファイル)をダウンロードする方法

先程の「Google Sheet API」を有効にすると、以下の画面が表示されます。右上の「認証情報を作成」をクリックします

今回は、アクセスするデータの種類として「アプリケーションデータ」を選択しています。必要に応じてユーザーデータを選択してください。選択後、「次へ」をクリックします

次にサービスアカウントの作成画面になります。サービスアカウント名に任意の名前を入れます。(必要に応じてサービスアカウントの説明を入力してください。)

必要に応じて「ロールを選択」から必要な権限を選択します。(今回は選択しません)「完了」ボタンをクリックします

以下の画面に遷移し、サービスアカウントが追加されたことがわかります。この「メール」をクリックします

画面上部の「キー」をクリックし、「鍵を作成」のドロップダウンから「新しい鍵を作成」をクリックします

モーダルが表示されるので、キーのタイプを「JSON」にして「作成」をクリックします

するとローカル(ご自身のPC)に秘密鍵(認証情報のJSONファイル)がダウンロードされます

このダウンロードされたJSONファイルを自作アプリケーション内に設定することで、Google Cloud Platform上のAPIを利用するための認証ができるようになります!

次は、このサービスアカウントのメールを対象のスプレッドシートに登録し、サービスアカウントに編集権限を与えます

APIから編集したいスプレッドシートに、サービスアカウントを登録する

以下の流れを行います

  • サービスアカウントのメールをコピーしておく
  • 対象のスプレッドシートの「共有」に、コピーしておいたサービスアカウントのメールを貼り付けて登録する

サービスアカウントのメールをコピーしておく

サービスアカウントのメールは、Google Cloud Consoleにログインし、対象のプロジェクトを選択し、左上のメニューボタン、次に「APIとサービス」、最後に「認証情報」をクリックします

画面下のサービスアカウントの「メール」をコピーします。(これをクリックした後に遷移する画面でも同じメールをコピーすることができます)

これでサービスアカウントのメールをコピペする準備ができました!

次にこのメールの貼り付け先を説明します!

対象のスプレッドシートの「共有」に、コピーしておいたサービスアカウントのメールを貼り付けて登録する

「APIを利用して編集するスプレッドシート」を開いて、右上の「共有」をクリックします

サービスアカウントのメールを矢印部分のテキストボックスに入力する

入力すると以下の画面になるので、権限が「編集者」であること確認し、右下の「送信」をクリックします

これで、サービスアカウントがこのスプレッドシートを編集できるようになりました!

まとめ

スプレッドシートAPIでシートを編集する際の、3つの事前準備について説明しました!

  • Google Cloud Pratform内のプロジェクトの「スプレッドシートAPI」を有効化する
  • Google Cloud Pratform内のプロジェクトの認証情報(jsonファイル)をダウンロードする
  • 編集したいスプレッドシートに、アプリケーション用のサービスアカウントを登録する

以上です!

ここまで読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました