PyDriveによるGoogleドライブへのファイルアップロード

投稿者: | 2022年3月3日

Raspberry Piなどから Googleドライブ へファイルをアップロードする仕組みを、Pythonベースの PyDrive (実際にはその派生版PyDrive2)を使って組んでみるも、コーディングよりもGoogleドライブAPIのお膳立てに労力を要します。

PyDriveからPyDrive2へ

4年ほど前のこちらの記事で、Raspberry PiからhtmlファイルをGoogleドライブへ送信するしくみで使ってみたのがgrdiveでした。その後あまりメンテされている様子が無いことから、代替検討していた時にみつけたのが、Pythonで動くPyDriveです。

PyDriveはGoogleドライブをセキュアかつ便利に使うことを目的とした、Google API Python Clientのラッパーライブラリなのですが、実は既に非推奨扱いになっていて開発も終了しており、フォークアウトして開発の継続しているPyDrive2への移行が推奨されています。

git clone で引っ張ってくる必要の有ったPyDriveと比べ、PyDrive2はPythonのパッケージ管理システムである pip から簡単に導入出来るのは、導入後の更新メンテと言う面でも魅力的と言えるでしょう。

 

Google Cloud プラットフォームでDrive APIを有効化

インストール前にまず、Google CloudプラットフォームでGoogleドライブAPIを有効にする必要があります。この手順が複雑かつGoogle側の仕様も変わることが多くて戸惑うことから、今回は自分の理解のためにこの記事を書いているようなものです。

まず、Google Cloudプラットフォームのコンソールトップページ上にある、プロジェクトを選択するプルダウンをクリックし、「新しいプロジェクト」を選択します。

図01.プロジェクトの選択

図01.プロジェクトの選択

適当な名前を入力したら「作成」ボタンを押して作成です。

図02.新しいプロジェクト名

図02.新しいプロジェクト名

プロジェクトのドンガラが出来たので、ダッシュボードページから、「APIの概要に移動」をクリック。

図03.プロジェクトダッシュボード

図03.プロジェクトダッシュボード

似たようなデザインのページばかりで間違えそうになりますが、これはAPIとサービスのダッシュボードページ。ページ上にある「+APIとサービスの有効化」をクリックします。

図04.APIとサービスダッシュボード

図04.APIとサービスダッシュボード

APIライブラリと言う画面になるので、検索ボックスから「Google Drive API」を探してクリックして有効化します。

図05.APIライブラリ

図05.APIライブラリ

図06.Google Drive API有効化

図06.Google Drive API有効化

有効にしたGoogleドライブAPIの概要ページを開くと、APIへのアクセスに必要な認証情報の作成を促されます。

図07.GoogleドライブAPIの概要

図07.GoogleドライブAPIの概要

認証情報の作成ウィザードではまず認証情報の種類を選択、OAuthクライアントを作りたいので「ユーザーデータ」を選びます。

図08.認証情報の種類

図08.認証情報の種類

次に名称やメールアドレスと言ったお約束の必須基本情報を入力。

図09.OAuth同意画面アプリ情報

図09.OAuth同意画面アプリ情報

次の遷移、「スコープ」は省略してその先のOAuthクライアントIDの項目へ進みます。ここで選択するアプリケーションの種類(下に列記)によって、その下に表示される設定項目も変化します。

  • ウェブアプリケーション
  • Android
  • Chrome アプリ
  • iOS
  • テレビと入力が限られたデバイス
  • デスクトップアプリ
  • ユニバーサル Windows プラットフォーム (UWP)

今回のような「自分だけがある固定端末から使うサービス」では、以前は「その他」と言う選択肢が有った筈なのですが見当たらないので、設定項目が汎用かつ最小限な「デスクトップアプリ」としました。

図10.OAuthクライアントID

図10.OAuthクライアントID

こうしてようやく作成された認証情報を client_secrets.json とリネームの上、ローカルにダウンロードしておきます。

図11.認証情報をダウンロード

図11.認証情報をダウンロード

認証情報はAPIダッシュボード左メニューの認証情報ページでいつでも確認可能です。そして最後に左メニューのOAuth同意画面へ進みます。

図12.認証情報一覧

図12.認証情報一覧

デフォルトでは下図のように公開ステータスが「テスト」になっていると思います。この状態ではテストユーザに自身のアカウントを追加しないと、自分すら使えずエラーになります。

図13.アプリテストステータス

図13.アプリテストステータス

ちなみにその際には、次のような承認エラーが現れます。先ほど図09で設定した開発者への連絡先は、こうした用途に使われます。

図14.テストステータスでの承認エラー

図14.テストステータスでの承認エラー

「アプリを公開」ボタンを押して「本番環境」状態になれば、テストユーザを追加する必要なく使えるようになります。さらに、テスト状態で通した認証は7日間しか保持できないことからも、やはり本番環境の状態で使うのが通例でしょう。

図15.アプリ公開ステータス

図15.アプリ公開ステータス

長い遷移を経てようやくGoogleドライブ側の受け入れ体制は整いました。次のページではRaspberry Piに作業の場を移して、いよいよPyDrive2をインストールします。

 

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA