私の会社の Web サイトでは、さまざまな詳細を追跡するために Google アナリティクスを使用しています。現在、Google アナリティクス サーバーからすべての生データを取得し、内部ツールを使用して処理する必要があります。
HelloAnalytics サンプル コード (Analytics V4 および oAuth 2.0) を使用して小さな Java コードを作成し、Google サーバーからセッション データを取得しました。パーソナル コンピューターから同じコードを実行している場合、正常に動作しています。しかし、会社のネットワークから同じことを実行しようとすると、「接続タイムアウト」または「認識されない SSL メッセージ、プレーンテキスト接続?」のいずれかがスローされて失敗します。.
これらの問題は明らかに、私の会社で使用されているファイアウォールまたはプロキシ サーバーが原因です。プロキシ サーバーを使用する企業ネットワークから Google アナリティクスに接続する方法があれば教えてください。
http.proxyHostとhttp.proxyPortをシステム プロパティとして追加しましたが、何も変更されず、同じエラーが発生しました。しかし、http ポートの代わりにhttps.proxyHostとhttps.proxyPortを追加すると、 「PKIX パスの構築に失敗しました: sun.security.provider.certpath.SunCertPathBuilderException: 要求されたターゲットへの有効な証明書パスが見つかりません」というエラー メッセージがスローされ始めます。
Googleのドキュメントはあまり役に立ちません:( 。どんな助けも大歓迎です。
参照用の私のコード:
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
//Trying both Explict token and also Client-Serect.json
GoogleCredential credential2 = new GoogleCredential().setFromTokenResponse(new TokenResponse().setAccessToken("Some token"));
GoogleCredential credential = GoogleCredential.fromStream(new FileInputStream("client-secret.json")).createScoped(AnalyticsReportingScopes.all());
AnalyticsReporting service = new AnalyticsReporting.Builder(httpTransport, JSON_FACTORY, credential).build();
GetReportsRequest getReport = //Create the report object to fetch user sessions
GetReportsResponse response = service.reports().batchGet(getReport).execute();