https://developers.google.com/sheets/api/quickstart/python ## [[GCP]]プロジェクトを作成 [[Google Cloud Console]]を開く。 新しいプロジェクトを作成する。 ![[Pasted image 20211006213311.png]] 名前は適当に。ここでは`Spreadsheet Sandbox`とした。右上にポップアップが出るので作成したプロジェクトを有効にする。 ![[Pasted image 20211006213616.png]] ## [[Google Workspace API]]を有効にする メニューから`APIとサービス`をクリック。 ![[Pasted image 20211006213855.png]] `APIとサービスの有効化`をクリック。 ![[Pasted image 20211006213927.png]] `Google Sheets API`を検索してクリック。 ![[Pasted image 20211006214056.png]] 有効にする。 ![[Pasted image 20211006214133.png]] ## 認証情報の作成 `認証情報を作成`をクリックして`APIキー`を作成する。 ![[Pasted image 20211006214725.png]] 作成されたAPIキーを補完しておく。 *不正使用の被害を抑えるため、キーやキーの使用方法を制限したほうがいい。今回はお試しですぐ削除する予定のため、Sheet APIだけに利用できるような制限だけ加える。* ![[Pasted image 20211006215052.png]] ## スプレッドシートの作成 こんなシートを作る。 ![[Pasted image 20211006215954.png]] シートのURLからid(以後 `<sheet_id>`)を取得しておく。 ## [[Python]]プロジェクトの作成 [[Pip]]でインストールする。 ```bash:powershell # 必要なら仮想環境作成 python3 -m venv venv .\venv\Scripts\activate # インストール pip install google-api-python-client ``` ソースコードを書く。 https://googleapis.github.io/google-api-python-client/docs/start.html ```python:main.py from googleapiclient.discovery import build API_KEY = "秘密のAPIキー" SAMPLE_SPREADSHEET_ID = 'スプレッドシートURLのID' SAMPLE_RANGE_NAME = 'main!A1:B3' def main(): service = build('sheets', 'v4', developerKey=API_KEY) sheet = service.spreadsheets() result = sheet.values().get(spreadsheetId=SAMPLE_SPREADSHEET_ID, range=SAMPLE_RANGE_NAME).execute() values = result.get('values', []) print(values) if __name__ == '__main__': main() ``` とりあえずこれでシートからデータを取得できた..が、==シートを『URLが知っていればアクセス可能』にする必要がある==ため、最悪公開されても問題ない場合しか使えなそう。 実際は[[OAuth 2.0]]を使う必要がある。