Google Colaboratory

Google ColabでdriveマウントしないでGCPのjsonを読み込みoauth2認証する。Python

Google Colabを使いPythonでスプレッドシートを扱う際にDriveに保存してある認証情報のキーのJsonを毎回読み込んでいるのですが、Driveの権限の認証をOKするのも手間なのでDriveを使わずにJsonを読み込ました時の備忘録です。

Driveを使わずgoogleの認証を行う

Driveからファイルを読み込まないので、代わりにJsonの中身をコード内に貼り付けてしまいます。

不恰好なので読み込んだ方が綺麗ではありますが、スケジュールで動かす際など便利です。

#@title Json情報
import gspread
def create_keyfile_dict():
    variables_keys ={Jsonの中身を貼り付け} // Here!!
    return variables_keys


####################################################


#ServiceAccountCredentials:Googleの各サービスへアクセスできるservice変数を生成
from oauth2client.service_account import ServiceAccountCredentials 

#2つのAPIを記述しないとリフレッシュトークンを3600秒毎に発行
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']

#認証情報設定
credentials = ServiceAccountCredentials.from_json_keyfile_dict(create_keyfile_dict(), scope)

#OAuth2の資格情報を使用してGoogle APIにログインします。
gc = gspread.authorize(credentials)

#ワークブック
workbook = gc.open_by_key(SPREADSHEET_KEY)

Here!の中身にJsonのファイルの中身をそのまま({}まで)貼り付けます。

実際に貼り付けるとこんな感じ。(一部消しています。)

variables_keys ={
  "type": "service_account",
  "project_id": "",
  "private_key_id": "",
  "private_key": "",
  "client_email": "",
  "client_id": "",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "",
  "universe_domain": "googleapis.com"
}

あとはスプレッドシートのキーをいれればworkbookの取得が行えます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です