我正在使用Google Analytic API来获取数据。我从最近1年获取数据没有任何问题。但是,从昨天开始,服务器在API调用上出现以下错误: -
Google.GoogleApiRequestException: Google.Apis.Requests.RequestError Backend Error [500] Errors [Message[Backend Error] Location[ - ] Reason[backendError] Domain[global] ] ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
另一个值得注意的事情是,当我在调用API时不断在生产服务器上遇到上述错误。那次我尝试使用相同的代码和证书从我的本地机器/舞台机器进行相同的API调用,并且每次都正常工作。
现在意味着我能够在我的本地和舞台上获得具有相同代码和服务帐户的所有数据。
请找到以下代码:
private static GaData executeDataQueryForCustomDimension(Analytics analytics, String profileId,Map reqMap) {
GaData gaData = new GaData();
String startDate = (String) reqMap.get("fromDate");
String toDate = (String) reqMap.get("toDate");
try {
gaData = analytics.data().ga().get("ga:" + profileId, // Table Id.
startDate, // Start date.2015-01-01
toDate, // End date.2015-07-07
"ga:visits") // Metrics.
.setDimensions("ga:pagePath")
.setMetrics("ga:timeOnPage")
.setFilters("ga:pagePath!~^/[-a-zA-Z0-9]+/[-a-zA-Z0-9]+/;ga:pagePath!@login;ga:pagePath!@admin;ga:pagePath!@.com;ga:pagePath!@p_p_id;ga:pagePath!@?;ga:pagePath!@blog;ga:pagePath!@add-review;ga:pagePath!@.html;ga:pagePath!@manufacturer/;ga:pagePath!@product-evaluations;ga:pagePath!@product;ga:pagePath!@request-more-info;ga:pagePath!@video/;ga:pagePath!@categories/")
.setStartIndex(1)
.setMaxResults(40000)
.execute();
} catch (Exception e) {
e.printStackTrace();
logger.error("Error getting data",e.getMessage());
}
return gaData;
}
我也尝试过指数退避(延迟)来调用服务器上的API。但是,这可以帮助我达到5到10个电话。但在那之后,我有同样的错误。 &安培;同样的事情每次都在我的本地机器/舞台上工作。
我在谷歌提供的分析仪表板上点击,但是每当我从制作中打电话时都会出错。
如果有人对此问题了解,请告诉我。如何解决这个问题。
使用以下版本的API,
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-analytics</artifactId>
<version>v3-rev116-1.19.1</version>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client-gson</artifactId>
<version>1.20.0</version>
</dependency>
我就是那个发起呼叫的人。因此,在我测试时每秒钟服务器一次,每秒钟就会有一次点击服务器,因此在几秒钟内没有最大呼叫。