スプレッドシート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キー」を選択します。
6. APIキーを取得
APIキーが生成されたら、それをコピーして保存します。APIキーは、Google Sheets APIにアクセスするための認証トークンです。
7. 利用制限の設定(オプション)
APIキーのセキュリティを強化するために、利用制限を設定することができます。制限を設定する場合は、「制限の設定」から適切なオプションを選択します。
これで、スプレッドシートAPIキーを取得する手順が完了しました。このAPIキーを使用して、Google Sheets APIにアクセスしてデータを操作できます。APIキーは機密情報であるため、安全な場所に保存し、不正なアクセスから保護してください。
以上が、スプレッドシートAPIキーを取得する手順です。これに従って作業を進め、必要なAPIキーを取得してください。
サービスアカウント作成、認証情報ダウンロード
8. プロジェクトを選択
左上のドロップダウンメニューから該当のプロジェクトを選択します。
9.サービスアカウントを作成する:
左側のメニューから「IAMと管理」 > 「サービスアカウント」を選択
画面上部の「+ サービスアカウントの作成」ボタンをクリックします。
サービスアカウントの名前と説明を入力し、「作成」をクリックします。
「役割の追加」から、サービスアカウントに必要な役割を付与します。例えば、"プロジェクト" > "オーナー"の役割を付与すると、完全なアクセス権限が与えられます。
10.認証情報を作成する:
サービスアカウントが作成されたら、該当するサービスアカウントの「アクション」メニューから「鍵を作成」を選択します
ダイアログが表示されるので、キーのタイプとして「JSON」を選択し、「作成」をクリックします。
JSON形式の認証情報ファイルがダウンロードされます。
実践! pythonとスプレッドAPI使用方法
最後に。取得したAPIキーと、認証情報、サービスアカウントの使い方です。
11.サービスアカウントを編集したいスプレッドシートと共有する。
今回使用するのは、お試しで作った、スプレッドシートです。
ここにサービスアカウントのメールアドレスを登録します。
12.スプレッドシートキーを確認
pythonで使用時には、スプレッドシートキーを確認する必要あり。
記載場所は、スプレッドシートを開いた際のアドレスに記載あり。
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()
実行した場合。以下の状態になります。
こんなこともやってます。良かったらみてってください。
この記事が気に入ったらサポートをしてみませんか?