見出し画像

GCP 入門 (18) - Google Sheets API

「GCP」(Google Cloud Platform)の「Google Sheets API 」の使い方をまとめました。

前回

1. Google Sheets API

Google Sheets API」は、「Googleスプレッドシート」にアクセスするAPIです。

2. プロジェクトの作成とAPIの有効化

(1) GCPの「Google Cloud Console」を開く。
(2) トップ画面上端の「プロジェクト名」から新規プロジェクトを作成。
(3) トップ画面上端の「検索ボックス」で「Google Sheets API」と「Google Drive API」を検索し、「有効にする」ボタンを押す。
GCPの外部からアクセスするため、「Google Drive API」も有効にしています。

3. サービスアカウントキーの作成

(1) 「Cloud Console」のメニュー「APIとサービス」を開く。
(2) 「認証情報 → 認証情報を作成 → ウィザードで選択」を選択。
(3) 「1. 必要な認証情報の種類を調べる」で、以下を設定し、「必要な認証情報」ボタンを押す。

・使用するAPI : Google Sheets API
・アクセスするデータの種類 : アプリケーションデータ
・"App Engine または Compute Engine でこの API を使用する予定はありますか?" : いいえ

(4) 「2. 認証情報を取得する」で、以下を設定し、「次へ」ボタンを押す。

・サービスアカウント名 : test
・ロール : Project → オーナー ※ どのリソースにアクセスできるかに影響
・キーのタイプ : JSON

成功すると、 「サービスアカウントキー」(JSONファイル)がダウンロードされます。

4. スプレッドシートの共有設定

(1) 「サービスアカウントキー」(JSONファイル)をエディタで開き、 "client_email"に書いてあるメールアドレスをメモ。
(2) アクセス対象とするスプレッドシートを開き、「共有」ボタンを押す。

画像1

(3) 共有対象に、(1)の"client_email"に書いてあったメールアドレスを追加。

画像2

5. Pythonからのスプレッドシートへのアクセス

(1) Pythonの仮想環境で、以下のパッケージをインストール。

$ pip install gspread
$ pip install oauth2client

(2) スクリプトの作成して実行
<サービスアカウントキーのパス>には、各自のサービスアカウントキーのパスを指定してください。

import gspread
from oauth2client.service_account import ServiceAccountCredentials

JSON_PATH = '<サービスアカウントキーのパス>'
SHEET_NAME = 'テスト'

# スプレッドシートとの接続
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_PATH, scope)
gc = gspread.authorize(credentials)
worksheet = gc.open(SHEET_NAME).sheet1

# スプレッドシートの読み書き
worksheet.update_acell('A1', 'Hello World!')
print(worksheet.acell('A1'))
<Cell R1C1 'Hello World!'>

成功すると、A1に「Hello World!」と書き込まれます。

画像3

6. APIリファレンス


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