Webカメラシステムを構築する手順(12)-GoogleDrive連携

コンテンツ
IT・テクノロジー
ラズパイを使った遠隔アクセスのモニタリングシステムです。
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プラットフォームのコンソールトップページに移動します。

pydrive2_1.JPG

pydrive2_2.JPG
pydrive2_3.JPG
pydrive2_4.JPG
pydrive2_5.JPG
pydrive2_6.JPG
pydrive2_7.JPG
pydrive2_8.JPG
pydrive2_9.JPG

3.Google API Python Clientをインストール


sudo pip3 install google-api-python-client

pydrive2_10.JPG

4.PyDrive2をインストール


sudo pip3 install PyDrive2

pydrive2_11.JPG

5.PyDrive2でDrive APIの疎通確立


PyDrive2公式ページに記載されている、「OAuth made easy」項から、GoogleドライブAPIとの疎通確立を行います。

※ Chromeブラウザは認証情報を作成したGoogleアカウントでログインしていなければならない。ブラウザは自動立ち上げさせた方がうまくいくかも?

「2.Google Cloud プラットフォームでDrive APIを有効化」で認証情報を作成したときにダウンロードしたJSONファイルは「client_secrets.json」にリネームする。

pydrive2_12.JPG

pydrive2_13.JPG

ここまでできれば、認証をクリアして、項番9、項番10のPythonプログラムによるダウンロードとアップロードを試すことができます。

項番6~8 は、Google Drive APIの認証情報へのアクセスの仕方、認証情報を削除、再作成するやり方です。

6.作成した認証情報にアクセスする


pydrive2_14.JPG

7.作成した認証情報を削除する

pydrive2_15.JPG

8.認証情報の再作成


pydrive2_16.JPG
pydrive2_17.JPG


9.Pythonプログラムによるダウンロード


pydrive2_18.JPG

10.Pythonプログラムによるアップロード

pydrive2_19.JPG

今回は、Google連携を実装してみました。
この後は、ZoneMinderを少しテストしたら、アップしようかなと思います。





サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら