見出し画像

スプレッドシートAPIキーの取得方法とgoogle サービスアカウントによるPYTHONでの運用方法について。

前置き:クラウドワークス等で仕事を受けると、よく、スプレッドシートに情報を記載~、だとか、必要情報をまとめたら、こちらで作成したスプレッドシートに記載して~だとか、よく言われます。
めんどくさいので、自動化できる方法を記載しておきます。

【狙い】
今回は、グーグルにて、普段我々が使用しているユーザーアカウントではなく、サービスアカウントと呼ばれる、アカウントを作り、アプリ本体へアクセス。json形式による認証情報を使用して、スプレッドシートへ記載する方法について記載します。

スプレッドシートAPI有効化とAPIキー取得方法

スプレッドシートAPIキーを取得することで、Google Sheets APIを使用してスプレッドシートにアクセスし、データを読み書きすることができます。以下の手順に従って、スプレッドシートAPIキーを取得しましょう。

1. Google Cloud Platform Consoleにアクセス

まず、Google Cloud Platform Consoleにアクセスします。ブラウザで https://console.cloud.google.com/ を開いてログインします。

初回は、利用規約に同意して続行しましょ

2. プロジェクトの選択

Google Cloud Consoleにログインした後、対象のプロジェクトを選択します。もしプロジェクトがない場合は、新しいプロジェクトを作成します。

プロジェクト選択(新規作成時も)をクリック


プロジェクト新規作成時は上記をクリック


プロジェクト名作成、場所は特になければ組織なしで問題なし。
作成後、通知にでるので、プロジェクトを選択。


プロジェクトが選択されました。

3. APIとサービスの有効化

次に、左側のナビゲーションメニューから「APIとサービス」>「ダッシュボード」に移動します。そこで、Google Sheets APIを検索し、有効にします。

たどり着き方


これを有効化


有効化すると上記画面

4. 認証情報の作成

Google Sheets APIが有効になったら、認証情報を作成する必要があります。これにより、APIへのアクセスが許可されます。認証情報を作成するには、左側のメニューから「認証情報」>「認証情報を作成」を選択します。

「認証情報所在」と、「直接認証情報を作成」


認証情報を作成場所

5. APIキーの作成

「認証情報を作成」をクリックすると、新しいウィンドウが開きます。そこで、「APIキー」を選択します。

認証情報を作成をクリックしAPIキーを選択。

6. APIキーを取得

APIキーが生成されたら、それをコピーして保存します。APIキーは、Google Sheets APIにアクセスするための認証トークンです。


APIキーを作成後、コピー人に教えないこと。

7. 利用制限の設定(オプション)

APIキーのセキュリティを強化するために、利用制限を設定することができます。制限を設定する場合は、「制限の設定」から適切なオプションを選択します。

これで、スプレッドシートAPIキーを取得する手順が完了しました。このAPIキーを使用して、Google Sheets APIにアクセスしてデータを操作できます。APIキーは機密情報であるため、安全な場所に保存し、不正なアクセスから保護してください。

以上が、スプレッドシートAPIキーを取得する手順です。これに従って作業を進め、必要なAPIキーを取得してください。




サービスアカウント作成、認証情報ダウンロード

8. プロジェクトを選択

左上のドロップダウンメニューから該当のプロジェクトを選択します。

プロジェクト選択

9.サービスアカウントを作成する:

左側のメニューから「IAMと管理」 > 「サービスアカウント」を選択

アカウント作成について

画面上部の「+ サービスアカウントの作成」ボタンをクリックします。

サービスアカウント箇所

サービスアカウントの名前と説明を入力し、「作成」をクリックします。

サービスアカウント名 を記入すると自動でメールアドレスが作成される。


「役割の追加」から、サービスアカウントに必要な役割を付与します。例えば、"プロジェクト" > "オーナー"の役割を付与すると、完全なアクセス権限が与えられます。


今回は編集者を選択


最後にアクセスを許可をクリックすると上記状態となる

10.認証情報を作成する:

サービスアカウントが作成されたら、該当するサービスアカウントの「アクション」メニューから「鍵を作成」を選択します

メールアドレスをクリック


キーをクリック



鍵の作成箇所



ダイアログが表示されるので、キーのタイプとして「JSON」を選択し、「作成」をクリックします。
JSON形式の認証情報ファイルがダウンロードされます。


認証情報ファイルについて

実践! pythonとスプレッドAPI使用方法

最後に。取得したAPIキーと、認証情報、サービスアカウントの使い方です。

11.サービスアカウントを編集したいスプレッドシートと共有する。

今回使用するのは、お試しで作った、スプレッドシートです。
ここにサービスアカウントのメールアドレスを登録します。


共有の仕方は、通常の共有方法と同じ。

12.スプレッドシートキーを確認

pythonで使用時には、スプレッドシートキーを確認する必要あり。
記載場所は、スプレッドシートを開いた際のアドレスに記載あり。

キーの記載箇所(上記枠で隠してある範囲d/と/editの間)

13.PYTHONによるAPIキー、認証方法

pip install gspread oauth2client
import gspread
from oauth2client.service_account import ServiceAccountCredentials

# 認証スコープ
scope = [
    'https://www.googleapis.com/auth/spreadsheets',
    'https://www.googleapis.com/auth/drive'
]

# サービスアカウント用の認証情報ファイル(JSON形式)のパス
credentials_file = r〇〇.json#r文なので、jsonファイルのディレクトリをそのまま〇〇部分に代入r'〇〇.json'orr"〇〇.json"になるように記載すること

def main():
    # サービスアカウントの認証情報を取得
    credentials = ServiceAccountCredentials.from_json_keyfile_name(credentials_file, scope)

    # Google Sheetsに接続
    gc = gspread.authorize(credentials)

    try:
        # 共有されたスプレッドシートのキー
        spreadsheet_key = '▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲'

        # 共有されたスプレッドシートを開く
        worksheet = gc.open_by_key(spreadsheet_key).sheet1

        # データの読み取り
        data = worksheet.get_all_values()
        print("スプレッドシートのデータ:")
        print(data)

        # 新しいデータの書き込み(例)
        new_data = [['新しいデータ1', '新しいデータ2'], ['新しいデータ3', '新しいデータ4']]
        worksheet.append_rows(new_data)
        print("新しいデータが追加されました。")

    except Exception as e:
        print("エラーが発生しました:", e)

if __name__ == "__main__":
    main()

実行した場合。以下の状態になります。

無事記載されました。

こんなこともやってます。良かったらみてってください。


この記事が気に入ったらサポートをしてみませんか?