我正在使用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,
com.google.apis google-api-services-analytics v3-rev116-1.19.1 com.google.http-client google-http-client-gson 1.20.0
我就是那个发起呼叫的人.所以在几秒钟内没有最大呼叫,因为我在测试时每秒钟服务器一次.