ラズパイを使った遠隔アクセスのモニタリングシステムです。
Windowsパソコン、スマホなどから、どこからでもモニタできます。
前回は、モニタリングプログラムの設定の仕方、運用の仕方の説明でした。
今回は、Google連携を試してみます。
モニタリングプログラムmotioneyeには、撮影した画像や映像を、Dropboxなどのサービスにアップロードする機能もあるのですが、GoogleDriveは仕様が変わったのもあって、使えませんでした。
これを、Google Drive APIを簡素化するgoogle-api-python-clientのラッパーライブラリであるpyDrive2を使用して、Pythonプログラムによってアップロードできるようにします。
このブログの前半は、PythonプログラムからGoogleDriveを使えるようにするためのGoogle Drive APIの準備に割いています。
motioneyeからGoogleDriveへのアップロード機能が動かなくなったのも、Google Drive APIの仕様が変わったためで、認証、認可(OAuth)が正常に処理できるようにする前準備が大変です。
認証、認可の準備がうまく行くと、良くSNSを使うときにお目見えする、Google認証の画面で認証を処理できるようになります。
その結果、最初のPythonプログラムの認証で、Google認証を求められますが、一度、認証をクリアできると、資格情報が保存され、2回目以降の認証はパスできます。
1.PyDrive2によるGoogleドライブとの連携
【プロローグ】 PyDrive2
PyDrive2 は、多くの一般的な Google Drive API V2 タスクを簡素化するgoogle-api-python-clientのラッパーライブラリです 。
これは、PyDriveのフォークとして積極的に保守されています。
Git for Data - DVC プロジェクトの作者とメンテナーによって開発されました。
「pydrive2」でググって、ライブラリ、ドキュメント情報を確認してみてください。
2.Google Cloud プラットフォームでDrive APIを有効化
PyDriveのインストール前にまず、Google CloudプラットフォームでGoogleドライブAPIを有効にします。
作業を始める前に、認証情報を作成するGoogleアカウントにログインしてから操作します。
Google Cloudプラットフォームのコンソールトップページに移動します。
3.Google API Python Clientをインストール
sudo pip3 install google-api-python-client
4.PyDrive2をインストール
sudo pip3 install PyDrive2
5.PyDrive2でDrive APIの疎通確立
PyDrive2公式ページに記載されている、「OAuth made easy」項から、GoogleドライブAPIとの疎通確立を行います。
※ Chromeブラウザは認証情報を作成したGoogleアカウントでログインしていなければならない。ブラウザは自動立ち上げさせた方がうまくいくかも?
「2.Google Cloud プラットフォームでDrive APIを有効化」で認証情報を作成したときにダウンロードしたJSONファイルは「client_secrets.json」にリネームする。
ここまでできれば、認証をクリアして、項番9、項番10のPythonプログラムによるダウンロードとアップロードを試すことができます。
項番6~8 は、Google Drive APIの認証情報へのアクセスの仕方、認証情報を削除、再作成するやり方です。
6.作成した認証情報にアクセスする
7.作成した認証情報を削除する
8.認証情報の再作成
9.Pythonプログラムによるダウンロード
10.Pythonプログラムによるアップロード
今回は、Google連携を実装してみました。
この後は、ZoneMinderを少しテストしたら、アップしようかなと思います。