0

アナリティクスAPIを使用して401応答を検出するクリーンなプログラム方法を誰かが知っているかどうか疑問に思います。基盤となるHTTPトランスポートにおそらくそれがあることは知っていますが、Analyticsオブジェクトを介して呼び出しが行われる場合、失敗の唯一のインジケーターはIOExceptionです(これは任意のタイプのエラーを示す可能性があります)。スタックトレースに表示されるJSON応答を取得する方法があれば、そこで確認できますが、現時点で考えられるのは、e.getMessage()文字列を解析することだけです。例:

GaData gadata = null;
try {
    gaData = analytics.data().ga().get(
            "ga:" + profileId,
            "2012-06-01",
            "2012-06-30",
            "ga:visits")
            .execute();
} catch (IOException ioe) {
    if (ioe.contains("401")) {
        System.out.println("A 401 occurred.");
    }
}

このケースを分離する理由は、アクセストークンの有効期限が切れていることを示しているためです。したがって、アクセストークンの有効期限が切れているかどうかを確認するには、別の解決策が適しています。これが可能な場合、コードはAPIキーを使用して呼び出しを行い、新しいアクセストークンを付与できます。

4

1 に答える 1

0

ドキュメントには、GoogleJsonResponseExceptionがスローされると記載されています。GoogleJsonResponseException.getDetails() はGoogleJsonErrorを返します。GoogleJsonError.code メソッドはエラー コード (この場合は HTTP 401 ERROR) を返します。

于 2012-07-03T22:53:29.603 に答える