プロジェクト (論文プロジェクト) 内に Google API を統合しようとしていますが、疑問や質問があります。したがって、ここにシナリオがあります:
コマンドラインからのみ実行され、ユーザーとのやり取りがまったくないバックエンド アプリケーションを Java で作成しました。その目標は、センサーとアクチュエーター間の通信と相互作用を可能にすることです。すべてがうまく機能します。ここで、センサーが特定の周期性と検出されたしきい値の両方でデータをバックアップできるようにするために、何かを統合したいと思います。それで、Googleドライブを試してみませんか?最初の非常に便利なリンクは次のとおりです。
https://developers.google.com/drive/web/quickstart/quickstart-java
https://developers.google.com/accounts/docs/OAuth2InstalledApp
クイックスタートの例は魅力のように機能します。ただし、かなりの設定が必要です。開発者コンソール (したがってアカウント) 内でプロジェクトを作成し、Drive API を有効にしてから、クライアント ID とクライアント シークレットを作成します。これらの手順を完了すると、クライアント ID とシークレットをハードコーディングして、Google ドライブのリクエスト URL を形成できます。次に、ブラウザーに URL を入力するよう求められます。ログインしていない場合はログインし、同意して、最後にアクセス トークンを取得するための認証コードをコピーしてコンソールに貼り付けます。うわー、かなりのセキュリティプロセス。しかし、特に、Web アプリ、スマートフォン アプリ、または Web サービスのいずれかがあり、アプリが他の誰かのアカウントにアクセスしてその仕事を実行できるようにするために、ユーザーの認証と承認が必要なシナリオでは、完全に同意します。. しかし、私の場合は、センサーがGoogle ドライブにデータをバックアップすることを望んでいます。
これらの事実は、私の最初の質問につながります。Google API (この場合はドライブ) を使用するには、とにかくプロジェクトを作成する必要がありますか? それとも別のアプローチがありますか?私が間違っていなければ、開発者コンソール内でプロジェクトを作成せずにクライアント ID とシークレットを作成する方法は他にありません。これは私をとても困惑させます。基本的にいくつかのライブラリを使用するプロジェクトを作成する必要があるのはなぜですか?
では、前の制約を正当な制約として想定し、真の質問に移りましょう: 認証プロセスを自動化するにはどうすればよいでしょうか? センサー (単に Java モジュール) がデータをバックアップしたいという私のシナリオを考えると、そのすべてのステップを完了することは不可能です。OAuth 2.0 に関する Google ページには、認証手順を埋め込むことができるさまざまなシナリオに関する優れた説明があり、「入力機能が制限されたデバイス」の説明も含まれています。残念ながら、これは他の方法よりも複雑であり、「ユーザーは入力機能が豊富なデバイスまたはコンピューターに切り替え、ブラウザーを起動し、入力が制限されたデバイスで指定された URL に移動し、ログインして、コードを入力する必要があります。 " (笑)
それで、私はあきらめず、OAuth Playground について説明するこの投稿にたどり着きました:ユーザーの介入なしでアプリ (Web またはインストール済み) を承認するにはどうすればよいですか? (正規?) . 特にそれが言うとき、それは本当に私にとって解決策のように見えます:
NB2。この手法は、一度しか実行されない認証コードを書く手間をかけずに、自分の (そして自分だけの) ドライブ アカウントにアクセスする Web アプリが必要な場合にうまく機能します。手順 1 をスキップして、手順 5 で「my.drive.app」を自分のメール アドレスに置き換えます。
しかし、私が間違っていなければ、OAuth Playground は Google API を使用するプロジェクトのテストとデバッグを支援するためのものだと思いますね。さらに、 GoogleAuthorizationCodeFlowやGoogleCredentialなどの Google ドライブ クラス(Java クイック スタートの例で使用) には、クライアント ID やクライアント シークレットなどが常に必要であり、これがポイント ゼロ (プロジェクトを作成し、グラフィカルな手順全体を実行する) につながります。
結論として、「グラフィカルな」認証操作を回避し、ユーザーの介入なしにドライブの API のみを使用して自動化されたプロセスに変換する方法はありますか? どうもありがとう、ヒント、ヒント、答え、ポインタに感謝します:-)