以下の内容はhttps://nakaoka3.hatenablog.com/entry/2023/09/08/181514より取得しました。


Google Sheets APIを使ってデータを取得する

プライベートで、Google スプレッドシートにまとめたデータを APIを使って取得したいという事があった。

以下の手順でやることができる。

サービスアカウントを作って、鍵ファイルを取得する

  • GCPでSheets APIを有効にする
  • GCPでサービスアカウントを作る
  • GCPでサービスアカウントの鍵ファイルを作成してダウンロードする

次にスプレッドシート側で、サービスアカウントに権限を与える必要がある

スプレッドシートの右上の「共有」ボタン

APIを使ってデータを取得する

作成してダウンロードしておいた鍵ファイルを使って、以下のようにデータが取得できる。

from google.oauth2 import service_account
from googleapiclient.discovery import build
credentials = service_account.Credentials.from_service_account_file('./path/to/credential.json')
scoped_credentials = credentials.with_scopes(
    ['https://www.googleapis.com/auth/spreadsheets.readonly']
)
service = build('sheets', 'v4', credentials=credentials)


spreadsheet_id = 'sheet-id'
range_name = 'Sheet1!A1:B100'
sheet = service.spreadsheets()
result = sheet.values().get(spreadsheetId=spreadsheet_id, range=range_name).execute()
values = result.get('values', [])

まとめ

便利だけど、サービスアカウント作るのが面倒に感じた。

共有ボタンでサービスアカウントに共有できるというのに最初気が付かなくて、どうやって権限与えるのか迷った。 共有ボタンからサービスアカウントにも共有できるのが面白い。

Notionのデータベースで同様のことをしようとするとAPIキーを作って取得できるので、Notionのほうが敷居が低いと感じた。




以上の内容はhttps://nakaoka3.hatenablog.com/entry/2023/09/08/181514より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14