KeePass+KeeAnywhereがGoogleドライブとの同期に失敗するので

ちょっと前から気になっていた件にようやく着手。若干手こずったので備忘録。
 
簡単に言うとパソコンからKeePassでGoogleドライブに共有しているkdbxファイルにアクセスしようとすると、権限不足エラーが出て同期できない。代わりにローカルバックアップが表示される。
AndroidiOSのKeePass系アプリからは接続できるので、問題が生じているのは同期に使用しているプラグインであるKeeAnywhere。
そのうち更新入るやろとローカルバックアップのまま使い続けていたけれど、プラグイン側に動きがなさそうなので対処開始。他のプラグインを使うという手は無し。
なおKeePass2.57(日本語化済)+KeeAnywhere2.1時点での出来事。エラーメッセージや参考サイトはこのページ最下部に。
 
 
従来KeeAnywhere SettingsのAccountsに登録していたGoogleDriveは、Checkしてもブラウザでのログインへ遷移後[このアプリはブロックされます]のみ表示され取り付く島がないので、KeePassメニューの

ツール>KeeAnywhere Settings>Accounts>Add>GoogleDrive(restricted)

から制限付きGoogleDriveを新規登録。ブラウザログインへ遷移後、Googleドライブ上ファイルの参照、編集、作成、削除権限付与を許可する。これはKeePass+KeeAnywhereを使用しているパソコンすべてで行う。

これでGoogleドライブに接続はできるも、
・KeePassメニューの ファイル>開く>Open from Cloud Drive> ではマイドライブのルートフォルダしか参照できない
・ルートフォルダにあっても既に保存されているkdbxファイルは認識しない
ので元のkdbxファイルは参照できず、要追加作業。
なおKeePassメニューの ファイル>URLから開く を実行するにはデータファイルへのフルパスが必要なので、フルパスが取れないGoogleドライブ上のファイルでは無理。
 
 
追加の作業はKeePassからGoogleドライブへのファイル保存。
Googleドライブに保存されているkdbxファイルをローカルにダウンロードする。ファイル>開く>ファイルから開く でダウンロードしたデータが表示されたら

ファイル名をつけて保存>Save to Cloud Drive からGoogleDrive(restricted)のAccountにファイル名を入力して保存

Googleドライブ上の元のkdbxファイルがルートフォルダにあって名前の衝突が起きるなら元ファイルを一旦削除かフォルダ移動。上書きでいけるかは未確認。

KeePassのローカルバックアップデータの最終更新日がGoogleドライブ上のkdbxファイルより後なら

ファイル名をつけて保存>Save Copy to Cloud Drive からGoogleDrive(restricted)のAccountにファイル名を入力して保存

Googleドライブ上の元のkdbxファイルがルートフォルダにあって名前の衝突が起きるなら元ファイルを一旦削除かフォルダ移動。上書きでいけるかは未確認。

とにかく最初回はKeePassから保存する必要がある。一度登録すれば別パソコンでも Open from Cloud Drive から参照可能。
 
 
これらの結果、参照するkdbxファイルが変更されるため、AndroidiOSアプリでも参照先を再登録。これでようやく従来の使用感へ。
ただkdbxファイルをGoogleドライブのルートフォルダに保存するということは、バックアップファイルも……ルートフォルダに。だから別フォルダにkdbx保存してたんですけど?!
 
【追記】なんとかしてみた
verdigris.hatenadiary.jp

 
 
なお最終手段はGoogleドライブ捨ててOneDriveに切り替える。そちらはややこしい手順なく、ポチポチしていけば設定も同期も可能。別フォルダの参照も可能。
KeeAnywhereにプリセットされている他クラウドサービスでも他デバイスで使用しているアプリが対応していれば。ただKeeAnywhere・Keepass2Android Password・KeePassium併用ではOneDriveかDropboxくらいしかないような。
 
 
権限不足エラーと格闘中にGoogleアカウントの設定確認したら、
 Googleアカウント>セキュリティ>サードパーティ製のアプリとサービスへの接続

 Googleアカウント>データとプライバシー>サードパーティ製のアプリとサービス
でKeeAnywhereに付与されているアクセス権が[プロフィール情報の参照]のみに。
AndroidiOSアプリでは[このアプリで使用する Google ドライブ上の特定のファイルのみの参照、編集、作成、削除]も付与。
いつの間にかKeeAnywhereから権限が取り上げられて"不足"になったらしい。
 
ついでにうちの権限不足エラーメッセージ転記

Error loading file list.
Exception:

Google.Apis.Requests.RequestError
Request had insufficient authentication scopes. [403]
Errors [
     Message[Insufficient Permission] Location[ - ]
Reason[insufficientPermissions] Domain[global]
]



【参考】
github.com
https://github-com.translate.goog/Kyrodan/KeeAnywhere/issues/432?_x_tr_sl=auto&_x_tr_tl=ja&_x_tr_hl=ja
※上記ブログカード[Google.Apis: Error 403: Request had insufficient authentication scopes]の日本語翻訳(Google)リンク

https://www.reddit.com/r/KeePass/comments/1gsphbl/comment/lxkjwr4/