1

Google API アクセスとそれを使用した OAuth フローに関する多くのドキュメントを読んでいますが、頭の中で機能していないようです。そのため、どのように機能するかについて明確なアイデアを得るために、最初に助けを求めたいと思います。その後、対応する API を使用してコーディングできます。

私が達成したいのは、Google Latitude API によるローカリゼーションのように、PC で実行されている Java アプリケーションに特定の Google ユーザー データを供給することです。これを取得するには、OAuth を使用する必要があるため、ユーザーの同意を得てから、コンピューターで実行されているアプリケーションからユーザー データにアクセスする必要がありますが、これを管理する方法がわかりません。

アプリケーションを Google API コンソールに登録し、Google Latitude モジュールを有効にしました。ここでLatitude コンソール アプリケーションも試してみましたが、正常に動作します (Google ユーザーを求めるブラウザ タブが開きました。入力して位置データを取得しました)。しかし、プログラム フローを私のニーズ。

私のアプリケーションでは、「リモート」ユーザーは、サーバーが Latitude を介して自分の位置を追跡できるようにするなど、サービスの有効化/無効化を要求するリクエスト (カスタム JSON メッセージ) をサーバーに送信することになっています。次に、AFAIK、サーバーはユーザーにURLを送信してユーザーが同意できるようにする必要がありますが、このURLを取得する方法と、サーバーがこの同意を認識してトークンを取得する方法がわかりません(自動的に?Googleはこれを追跡します認可プロセス?)サーバーが特定のユーザー トークンを取得したら、受信したトークンを使用してそのユーザーのサービス データを取得する準備が整います。

前に言ったように、さまざまな参考文献に従って試してみましたが、ドキュメントが本当に散らばっているようで、その多くはすでに非推奨になっているため、機能させることができませんでした.

4

1 に答える 1

0

あなたの説明から判断すると、インストールされたアプリのOAuth2フローはあなたにとって正しいもののようです。

ある時点で、おそらくユーザーがデスクトップアプリをインストールしているときに、ブラウザー(アプリに埋め込まれているブラウザーまたはデフォルトのブラウザー)を起動して、このGoogleOAuth2エンドポイントに送信する必要があります。リクエストでは、ドキュメントに必要なすべてのパラメータ(Latitude APIスコープ、client_idなど)を入力します。承認サーバーとしてのGoogleが、ユーザー認証、セッション選択、ユーザー同意を処理します。ユーザーが自分のデータへのアクセスをAPIに許可すると、ブラウザウィンドウのタイトルまたはローカルホストポートのいずれかで認証コードを受け取ります。

コードを取得したら、アクセストークンと更新トークンと交換できます。アクセストークンは、APIを呼び出してユーザーのデータにアクセスするために必要なものです。ただし、短命です。応答のexpired_inパラメータを確認してください。3600秒だと思います。-そのため、トークンエンドポイントに長期間有効な更新トークンを定期的にpingして、アクセストークンと交換する必要があります。

このフローの詳細については、上記のリンク先のドキュメントをご覧ください。

于 2013-01-10T02:52:28.530 に答える