2/3 Google Driveを操作するための準備 ほか(pydrive ,Google Drive API)

■今日やったこと

  • Google Drive APIをJupyter Notebookで使えるようにする
  • Google Colaboratoryで今まで作ったコードを実行してみる(今更)
  • ターミナルからPythonを実行する方法を知る(超今更)
Google Driveを操作するまでには至らなかった。
調べてもわからないことだらけで手探りで進めたため、すごい時間がかかった…。

■環境

  • mac 10.13.6
  • Python 3.8.5
  • conda 4.9.2
  • PyDrive 1.3.1 (今回インストールした)
  • google-api-python-client(認証後にDLで大丈夫だった)

■Google Drive APIをJupyter Notebookで使えるようにする

PythonでGドライブを操作するにはまず、Google Drive APIというのを使えるようにしなければならない。
さらにGoogleはセキュリティが厳しいので、
使用の許可をJupyter Notebookに与えるための手続きが色々と大変だった(OAuthオーオース認証)。
一度許可を出して使えるようになれば(認証されれば)同じ手続きをしなくても使えるらしいけど、
一応使えるようになるでの流れをメモ。

0. pydriveのインストール

pydriveをターミナルからインストール
conda install -c conda-forge pydrive

1.Google Developer Consoleでプロジェクトを新規作成

Google Developer Consoleに初めてアクセスした。
初めてなので「プロジェクトの新規作成」からスタート。

2.認証情報を作成

認証情報を作成>OAuth クライアント ID
アプリケーションの種類は「デスクトップ アプリ」を選択し、作成
ここで作成されたクライアント IDとクライアント シークレットは後で使うのでメモる。
(あとで他の画面から確認することもできる)

つまづいたところ:アプリケーションの種類

区別がよくわからないのだが「ウェブ アプリケーション」だと最終的にうまくいかなかった…なぜ?

つまづいたところ:公開ステータス

公開ステータスが「テスト」になっていたので、後の認証画面でエラーが出てしまった。
当たり前だけど「本番環境」にしないと使えない。


3.client_secret_クライアントID.json をダウンロード

4.Google Drive APIを有効化

ダッシュボード>APIとサービスの有効化>Google Drive APIを検索>有効にする

5.pydriveを使ったプログラムを作成

初回はドライブへのアクセス認証を求められるので、そのために適当なコード(画像のアップロードをするコードとか、なんでも)を作成。
実行するのはどんな操作でもいいのだが、検索すると、
テキストや画像のアップロードを行うコードが主に出てくる。
今回は認証のみを行うコードを紹介している人を発見したのでそれを使ってみた。

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.CommandLineAuth()
print("ok")

6. pydriveプログラムと同じ階層にclient_secret_クライアントID.jsonを格納

※よく分かってないが、多分同じ階層にないと実行できないと思われる

7.プログラムをJupyter Notebookで実行、アクセス認証を行う

エラーが出て、
Go to the following link in your browser:
と言われるので、表示されるURLからGドライブへのアクセス許可を行う。
許可後に認証コード(verification code)が発行されるので、Jupyter Notebookに戻って入力する。

※Winのコマンドラインでの実行例がほとんどで、
自分の環境でのやり方が分からず、ここで詰んだ。
Macの場合ターミナルから実行することになるが、Jupyter NotebookでしかPythonを動かしたことがなくて、
.pyファイルをターミナルから実行する方法を知らなかった。
結局ターミナルから実行する方法は分かったものの、
なぜかエラーが出てうまくいかなかったので、Jupiter Notebookで実行してみたところ、なんかできた。
(Jupiter Notebookでやってる人が見当たらなかったので試みていなかった)

コメント

このブログの人気の投稿

2/4 楽天クレカのダウンロード自動化