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プラットフォームのコンソールトップページ上にある、プロジェクトを選択するプルダウンをクリックし、「新しいプロジェクト」を選択します。
適当な名前を入力したら「作成」ボタンを押して作成です。
プロジェクトのドンガラが出来たので、ダッシュボードページから、「APIの概要に移動」をクリック。
1 |
https://console.cloud.google.com/home/dashboard |
似たようなデザインのページばかりで間違えそうになりますが、これはAPIとサービスのダッシュボードページ。ページ上にある「+APIとサービスの有効化」をクリックします。
1 |
https://console.cloud.google.com/apis/dashboard |
APIライブラリと言う画面になるので、検索ボックスから「Google Drive API」を探してクリックして有効化します。
有効にしたGoogleドライブAPIの概要ページを開くと、APIへのアクセスに必要な認証情報の作成を促されます。
1 |
https://console.cloud.google.com/apis/api/drive.googleapis.com/overview |
認証情報の作成ウィザードではまず認証情報の種類を選択、OAuthクライアントを作りたいので「ユーザーデータ」を選びます。
次に名称やメールアドレスと言ったお約束の必須基本情報を入力。
次の遷移、「スコープ」は省略してその先のOAuthクライアントIDの項目へ進みます。ここで選択するアプリケーションの種類(下に列記)によって、その下に表示される設定項目も変化します。
- ウェブアプリケーション
- Android
- Chrome アプリ
- iOS
- テレビと入力が限られたデバイス
- デスクトップアプリ
- ユニバーサル Windows プラットフォーム (UWP)
今回のような「自分だけがある固定端末から使うサービス」では、以前は「その他」と言う選択肢が有った筈なのですが見当たらないので、設定項目が汎用かつ最小限な「デスクトップアプリ」としました。
こうしてようやく作成された認証情報を client_secrets.json とリネームの上、ローカルにダウンロードしておきます。
認証情報はAPIダッシュボード左メニューの認証情報ページでいつでも確認可能です。そして最後に左メニューのOAuth同意画面へ進みます。
1 |
https://console.cloud.google.com/apis/credentials |
デフォルトでは下図のように公開ステータスが「テスト」になっていると思います。この状態ではテストユーザに自身のアカウントを追加しないと、自分すら使えずエラーになります。
ちなみにその際には、次のような承認エラーが現れます。先ほど図09で設定した開発者への連絡先は、こうした用途に使われます。
「アプリを公開」ボタンを押して「本番環境」状態になれば、テストユーザを追加する必要なく使えるようになります。さらに、テスト状態で通した認証は7日間しか保持できないことからも、やはり本番環境の状態で使うのが通例でしょう。
長い遷移を経てようやくGoogleドライブ側の受け入れ体制は整いました。次のページではRaspberry Piに作業の場を移して、いよいよPyDrive2をインストールします。