2

Google Plus API を使用して Web アプリケーションを作成しようとしていて、Java で OAuth アクセスを設定する必要があります。いろいろ検索したところ、Google Java スターターやその他の例が見つかりました。トークンを取得するために私が書くべきコードJavaでOAuthアクセスを簡単な手順で取得する方法を教えてくれる人がいればいいのですが、stackoverflow.comで他の質問を見ましたが、あまり役に立ちませんでした

どんな助けでも大歓迎です:)

4

1 に答える 1

6

最新のGoogle+ Java クイックスタートは非常に簡単です。検索すると古いプロジェクトを見つけたのではないでしょうか? また、Java を使用して Google+ を開始するためのドキュメントも役立つはずです。

次のスニペットは、ハイブリッド クライアント/サーバー フローを使用するときにアクセス トークンの認証コードを交換するための関連コードを示しています。

      GoogleTokenResponse tokenResponse =
          new GoogleAuthorizationCodeTokenRequest(TRANSPORT, JSON_FACTORY,
              CLIENT_ID, CLIENT_SECRET, code, "postmessage").execute();
      // Create a credential representation of the token data.
      GoogleCredential credential = new GoogleCredential.Builder()
          .setJsonFactory(JSON_FACTORY)
          .setTransport(TRANSPORT)
          .setClientSecrets(CLIENT_ID, CLIENT_SECRET).build()
          .setFromTokenResponse(tokenResponse);

簡単にするために、このスレッドで説明されている必要条件のチェックを実行する行を削除しています。

      // Store the token in the session for later use.
      request.session().attribute("token", tokenResponse.toString());

ユーザーがアプリを切断しない限り、これらの資格情報を保持する必要があることに注意してください。このサンプルではセッションを使用しています。これは、実稼働環境ではセッションを DB でサポートすることができ、サーバーの再起動後に復元されるためです。

アクセス/更新トークンと有効期限を取得したら、OAuth v2 トークンの資格情報を作成すると、ライブラリがアクセス トークンを内部的に適切に更新します。次のコードは、ユーザーのセッションからトークン データを取得することによってクイックスタートでこれがどのように行われるかを示しています。また、クライアントによって実行される API 呼び出しも含まれており、サーバーの Java クライアントが機能していることを証明しています。

      // Build credential from stored token data.
      GoogleCredential credential = new GoogleCredential.Builder()
          .setJsonFactory(JSON_FACTORY)
          .setTransport(TRANSPORT)
          .setClientSecrets(CLIENT_ID, CLIENT_SECRET).build()
          .setFromTokenResponse(JSON_FACTORY.fromString(
              tokenData, GoogleTokenResponse.class));
      // Create a new authorized API client.
      Plus service = new Plus.Builder(TRANSPORT, JSON_FACTORY, credential)
          .setApplicationName(APPLICATION_NAME)
          .build();
      // Get a list of people that this user has shared with this app.
      PeopleFeed people = service.people().list("me", "visible").execute();

これを別の方法で行う場合は、Plus サービス オブジェクトを構築する前に、アクセス トークン、リフレッシュ トークンなどから tokenData オブジェクトを明示的に構築できます。

于 2013-03-23T23:40:38.207 に答える