Google Analytics服务API - 确定访问令牌是否已过期

时间:2012-07-03 20:31:40

标签: oauth google-analytics

我想知道是否有人知道使用分析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​​密钥进行调用以授予新的访问令牌。

1 个答案:

答案 0 :(得分:0)

documentation表示GoogleJsonResponseException会被抛出。 GoogleJsonResponseException.getDetails()返回GoogleJsonError。 GoogleJsonError.code方法将返回错误代码(在本例中为HTTP 401 ERROR)。