PythonでGoogle Driveのファイルを操作する(事前準備編)
Pythonを用いてGoogle Drive内のファイルをダウンロードするなどの処理を実装する際、以下2つのデータが必要となります。
- client_secret.json
-
token.pickle
本記事では、上記2つのデータを取得する方法を解説します。
Pythonを用いてGoogle Driveのファイルを操作するプログラムについては、後日公開予定です。
client_secret.jsonの取得
Google Cloud Platformにアクセス
Google Cloud Platformにアクセスします。
プロジェクトの選択
添付画像赤枠の部分をクリックします。初めて作成される方は「プロジェクトの選択」となっている可能性があります。
プロジェクト作成
任意のプロジェクト名を入力し、作成ボタンをクリックします。
作成したプロジェクトの選択
再度添付画像赤枠の部分をクリックします。
作成したプロジェクトをクリックします。
Google Drive APIの有効化
ライブラリをクリックします。
検索窓に「google drive」と入力し、検索候補で出てくる「google drive api」をクリックします。
Google Drive APIをクリックします。
有効にするをクリックします。
OAuthクライアントID
認証情報 > 認証情報を作成 > OAuthクライアントIDをクリックします。
同意画面を設定をクリックします。
外部を選択し作成をクリックします。
OAuth同意画面
入力が必須であるアプリ名、ユーザーサポートメール、デベロッパーの連絡先情報 > メールアドレスの3つのデータを入力します。入力後、保存して次へをクリックします。
スコープ
保存して次へをクリックします。
テストユーザー
保存して次へをクリックします。
概要
内容を確認し、ダッシュボードに戻るをクリックします。
遷移後のページにてアプリを公開をクリックします。
確認をクリックします。
OAuthクライアントIDの作成
認証情報 > 認証情報を作成 > OAuthクライアントIDをクリックします。
アプリケーションの種類の選択、名前を入力した後、作成をクリックします。
ポップアップ画面のJSONをダウンロードをクリックします。クリック後、「client_secret_xxxx.json」がダウンロードされます。これが本記事におけるclient_secret.jsonにあたります。
token.pickleの取得
ライブラリのインストール
pip install google-api-python-client
pip install google-auth-httplib2
pip install google-auth-oauthlib
token.pickleを発行するプログラムの実行
プログラム実行前にclient_secret_xxxx.jsonをclient_secret.jsonと名前を変更した状態で以下のプログラムを実行します。実行後token.pickleが発行されます。
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
SCOPES = ['https://www.googleapis.com/auth/drive']
def main():
# OAuth
drive = None
creds = None
if os.path.exists('token.pickle'):
with open('token.pickle', 'rb') as token:
creds = pickle.load(token)
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
elif os.path.exists('client_secret.json'):
flow = InstalledAppFlow.from_client_secrets_file(
'client_secret.json', SCOPES)
creds = flow.run_local_server(port=0)
with open('token.pickle', 'wb') as token:
pickle.dump(creds, token)
if creds and creds.valid:
drive = build('drive', 'v3', credentials=creds)
if not drive: print('Drive auth failed.')
if __name__ == '__main__':
main()
以上で以下2データの取得は完了です。
- client_secret.json
-
token.pickle
Pythonを用いてGoogle Driveのファイルを操作するプログラムについては、後日公開予定です。
Discussion
続編希望します