【Python】PyDriveを使ってGoogle Driveを操作する(認証編)
1. 前提
- Python: 3.8.5
- PyDrive: 1.3.1
2. 実施内容
2-1. GoogleDriveのOAuth2.0クライアントIDを作成する
- Google Developers Console を開きプロジェクトを作成する
- 作成したプロジェクトを開き、左側メニュー「有効なAPIとサービス」をクリックする
- APIとサービス画面上部の「APIとサービスの有効化」をクリックし「Google Drive API」を有効化する
- 左側メニュー「認証情報」をクリックする
- 認証情報画面上部の「認証情報を作成」をクリックし、「OAuthクライアントID」をクリックする
アプリケーションの種類を「デスクトップアプリ」、名前に「任意のテキスト」を入力し「作成」をクリックする
作成された「クライアントID」と「クライアントシークレット」を保存しておく
あとはコードを書くのみ。
2-2. ライブラリのインストール
pip
を使用して PyDrive
をインストールする
$ pip install pydrive
2-3. PyDriveの設定ファイルを作成する
PyDrive
を使うための認証情報の設定ファイル( settings.yaml
)を作成する
client_id
と client_secret
の欄には前述で保存しておいた「クライアントID」「クライアントシークレット」を入力しておく
アクセストークンなどの認証情報を保管する credentials.json
は一旦空のファイルで作っておく
client_config_backend: settings client_config: client_id: XXXXXXXXXXXXXXXX.apps.googleusercontent.com client_secret: ZZZZZZZZZZZZZZZZZZ save_credentials: True save_credentials_backend: file save_credentials_file: credentials.json get_refresh_token: True
2-4. プログラムから認証を実施する
以下のようにソースコードを書く
GoogleAuth()
で settings.yaml
から認証情報を取得し、 CommandLineAuth
で認証を行う
CommandLineAuth()
では一度認証を行えば credentials.json
にアクセストークンが保管され次回以降のプログラムの実施に使用される。
GoogleDrive(auth)
で取得した認証情報を元にGoogleDriveを操作する準備を行う
# gauth.py from pydrive.auth import GoogleAuth from pydrive.drive import GoogleDrive auth = GoogleAuth() auth.CommandLineAuth() drive = GoogleDrive(auth)
2-5. プログラムを実行し認証を行う
ここまでで一旦プログラムを実行し認証できるか試してみる。
正常に動作するとコマンドライン上に認証URLが表示されるのでアクセスし認証コードを取得、コマンドラインに貼り付けて認証を完了させる
$ python gauth.py Go to the following link in your browser: https://accounts.google.com/o/oauth2/auth?client_id=........ Enter verification code: XXXXXXXX Authentication successful.
とりあえず今回はここまで。 また進捗があったら追記予定。