![見出し画像](https://assets.st-note.com/production/uploads/images/130451579/rectangle_large_type_2_dc085250f05d1b2b68ca7841b85cc7d4.png?width=1200)
スプレッドシートAPIキーの取得方法とgoogle サービスアカウントによるPYTHONでの運用方法について。
前置き:クラウドワークス等で仕事を受けると、よく、スプレッドシートに情報を記載~、だとか、必要情報をまとめたら、こちらで作成したスプレッドシートに記載して~だとか、よく言われます。
めんどくさいので、自動化できる方法を記載しておきます。
【狙い】
今回は、グーグルにて、普段我々が使用しているユーザーアカウントではなく、サービスアカウントと呼ばれる、アカウントを作り、アプリ本体へアクセス。json形式による認証情報を使用して、スプレッドシートへ記載する方法について記載します。
![](https://assets.st-note.com/img/1707562676332-KgOSOjbNxU.png?width=1200)
スプレッドシートAPI有効化とAPIキー取得方法
スプレッドシートAPIキーを取得することで、Google Sheets APIを使用してスプレッドシートにアクセスし、データを読み書きすることができます。以下の手順に従って、スプレッドシートAPIキーを取得しましょう。
1. Google Cloud Platform Consoleにアクセス
まず、Google Cloud Platform Consoleにアクセスします。ブラウザで https://console.cloud.google.com/ を開いてログインします。
![](https://assets.st-note.com/img/1707545550459-SsdQVc67Ic.png)
2. プロジェクトの選択
Google Cloud Consoleにログインした後、対象のプロジェクトを選択します。もしプロジェクトがない場合は、新しいプロジェクトを作成します。
![](https://assets.st-note.com/img/1707546197006-yhRc6M4WBK.png)
![](https://assets.st-note.com/img/1707546319310-XH05z3fi56.png?width=1200)
![](https://assets.st-note.com/img/1707546487264-tTYrncxeC7.png?width=1200)
![](https://assets.st-note.com/img/1707546902775-R2loWBsG7l.png)
![](https://assets.st-note.com/img/1707547088431-0UeAQfiQsr.png?width=1200)
3. APIとサービスの有効化
次に、左側のナビゲーションメニューから「APIとサービス」>「ダッシュボード」に移動します。そこで、Google Sheets APIを検索し、有効にします。
![](https://assets.st-note.com/img/1707550448396-T64hK6Nsev.png)
![](https://assets.st-note.com/img/1707550448400-tjQCKi6QNx.png?width=1200)
![](https://assets.st-note.com/img/1707550448363-yx1hKmzXNF.png?width=1200)
4. 認証情報の作成
Google Sheets APIが有効になったら、認証情報を作成する必要があります。これにより、APIへのアクセスが許可されます。認証情報を作成するには、左側のメニューから「認証情報」>「認証情報を作成」を選択します。
![](https://assets.st-note.com/img/1707547925103-8CfLw3yIlu.png?width=1200)
![](https://assets.st-note.com/img/1707548029978-dmoKnMpAWV.png?width=1200)
5. APIキーの作成
「認証情報を作成」をクリックすると、新しいウィンドウが開きます。そこで、「APIキー」を選択します。
![](https://assets.st-note.com/img/1707550586549-y8WJqHoLa5.png)
6. APIキーを取得
APIキーが生成されたら、それをコピーして保存します。APIキーは、Google Sheets APIにアクセスするための認証トークンです。
![](https://assets.st-note.com/img/1707550737974-ygmsBDZLoV.png)
7. 利用制限の設定(オプション)
APIキーのセキュリティを強化するために、利用制限を設定することができます。制限を設定する場合は、「制限の設定」から適切なオプションを選択します。
これで、スプレッドシートAPIキーを取得する手順が完了しました。このAPIキーを使用して、Google Sheets APIにアクセスしてデータを操作できます。APIキーは機密情報であるため、安全な場所に保存し、不正なアクセスから保護してください。
以上が、スプレッドシートAPIキーを取得する手順です。これに従って作業を進め、必要なAPIキーを取得してください。
サービスアカウント作成、認証情報ダウンロード
8. プロジェクトを選択
左上のドロップダウンメニューから該当のプロジェクトを選択します。
![](https://assets.st-note.com/img/1707559796312-SvpQ52uxzv.png?width=1200)
9.サービスアカウントを作成する:
左側のメニューから「IAMと管理」 > 「サービスアカウント」を選択
![](https://assets.st-note.com/img/1707559902785-rMfN3m4dB7.png?width=1200)
画面上部の「+ サービスアカウントの作成」ボタンをクリックします。
![](https://assets.st-note.com/img/1707559996233-d0YwizhLJA.png?width=1200)
サービスアカウントの名前と説明を入力し、「作成」をクリックします。
![](https://assets.st-note.com/img/1707560102311-CPsdmiYBqp.png?width=1200)
「役割の追加」から、サービスアカウントに必要な役割を付与します。例えば、"プロジェクト" > "オーナー"の役割を付与すると、完全なアクセス権限が与えられます。
![](https://assets.st-note.com/img/1707560277872-xzBftuw5hw.png?width=1200)
![](https://assets.st-note.com/img/1707560424019-TkSjjveIrx.png?width=1200)
10.認証情報を作成する:
サービスアカウントが作成されたら、該当するサービスアカウントの「アクション」メニューから「鍵を作成」を選択します
![](https://assets.st-note.com/img/1707560830521-6emUrSRkYv.png?width=1200)
![](https://assets.st-note.com/img/1707560884840-sxohXHZF3g.png)
![](https://assets.st-note.com/img/1707561172739-B66xLWGeBm.png)
ダイアログが表示されるので、キーのタイプとして「JSON」を選択し、「作成」をクリックします。
JSON形式の認証情報ファイルがダウンロードされます。
![](https://assets.st-note.com/img/1707561220532-OllTihik6N.png?width=1200)
実践! pythonとスプレッドAPI使用方法
最後に。取得したAPIキーと、認証情報、サービスアカウントの使い方です。
11.サービスアカウントを編集したいスプレッドシートと共有する。
今回使用するのは、お試しで作った、スプレッドシートです。
ここにサービスアカウントのメールアドレスを登録します。
![](https://assets.st-note.com/img/1707561705803-IwhvVqaAkq.png)
![](https://assets.st-note.com/img/1707561696328-3G915xnQ0m.png?width=1200)
![](https://assets.st-note.com/img/1707561944482-nEjXZANxUI.png)
12.スプレッドシートキーを確認
pythonで使用時には、スプレッドシートキーを確認する必要あり。
記載場所は、スプレッドシートを開いた際のアドレスに記載あり。
![](https://assets.st-note.com/img/1707563115338-vyQ4Qcq95b.png?width=1200)
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()
実行した場合。以下の状態になります。
![](https://assets.st-note.com/img/1707563229628-2XR1oGMSOZ.png)
こんなこともやってます。良かったらみてってください。