MotionEyeでDropboxにアップロードしようとしたらエラーが出てハマった!なんとか解決したので、さらす。
MotionEyeもMotionEye.eoも同じやり方でOK!
Error (400)!?
It seems the app you were using submitted a bad request. If you would like to report this error to the app’s developer, include the information below.
More details for developers
Invalid client_id: “dropbox_client_id_placeholder”.
原因:Client id設定なし!?
アプリ開発者に連絡?MotionEyeの開発者?Dropboxとファイルのやり取りするDropbox APIのIDのことか。探したで。
client_idの取得
https://www.dropbox.com/developers/apps
- App key xxxxxxxxxxxxxxx
- App secret yyyyyyyyyyyyyyy
これらをMotionEyeにコピペする。
- App key→クライアントID(CLIENT_ID)
- App secret→パスワード(CLIENT_NOT_SO_SECRET)
Dropboxの設定が終わっていない人はこちらを参照してやってください。
MotionEyeへの設定
google先生とわしのカンによりuploadservices.pyじゃね?カン言うよりそのままのお名前。
- sudo find / -name ‘uploadservices.py’
わしのは、ここにあったで。
/usr/local/lib/python3.9/dist-packages/motioneye
変更前にオリジナルをコピーしとこ。
- sudo cp /usr/local/lib/python3.9/dist-packages/motioneye/uploadservices.py /usr/local/lib/python3.9/dist-packages/motioneye/uploadservices.py.org
変更じゃ。わしはnanoとか言うEditorじゃ。
- sudo nano /usr/local/lib/python3.9/dist-packages/motioneye/uploadservices.py
クラス名Dropboxを見つけ、以下の変更を加える。(ctrl+wで検索)
エラーメッセージにあるdropbox_client_id_placeholder探すほうがお利口さん。
class Dropbox(UploadService):
NAME = 'dropbox'
AUTH_URL = 'https://www.dropbox.com/oauth2/authorize'
TOKEN_URL = 'https://api.dropboxapi.com/oauth2/token'
#元 CLIENT_ID = 'dropbox_client_id_placeholder'
CLIENT_ID = 'xxxxxxxxxxxxxxx'
#元 CLIENT_NOT_SO_SECRET = 'dropbox_client_secret_placeholder'
CLIENT_NOT_SO_SECRET = 'yyyyyyyyyyyyyyy'
LIST_FOLDER_URL = 'https://api.dropboxapi.com/2/files/list_folder'
赤色のところへ、先ほど調べたやつをコピペ
それにしても、何という変数名!最初分からんかった。
変更を保存したら(ctrl+s,ctrl+x)
MotionEyeのリスタート
- sudo systemctl restart motioneye
サービスの状態を確認
- sudo systemctl status motioneye
恐らく、こちらの対応も必要なはず
参考まで
以上
3件のコメント