Google AnalyticsAPI成本数据上传陷入困境

时间:2013-02-01 14:54:58

标签: java google-analytics google-analytics-api google-api-java-client

我关注了Management API - Daily Upload Developer Guide并创建了已安装的Java应用程序,以将费用数据上传到Google Analytics。但它不知何故不起作用。我已使用Analytics范围授权创建https://www.googleapis.com/auth/analytics服务,现在我想上传一些费用数据。

我根据提到的指南这样做了。

File file = new File("data.csv");
InputStreamContent mediaContent = new InputStreamContent('application/octet-stream', new FileInputStream(file));
mediaContent.setLength(file.length());

// You can ignore following three lines... those are there to make sure Analytics service works.
Accounts accounts = analytics.management().accounts().list().execute();
Account account = accounts.getItems().get(0);
System.out.println("Account ID is: " + account.getId());

Analytics.Management management = analytics.management();
Analytics.Management.DailyUploads dailyUploads = management.dailyUploads();

// Here it gets stuck!
Analytics.Management.DailyUploads.Upload upload = dailyUploads.upload("AccountID",
  "PropertyID", "CustomDataSourceID", "yyyy-MM-dd", 1, "cost", mediaContent);

upload.setReset(true);
DailyUploadAppend append = upload.execute();

我添加了一些行来检索Accounts并打印第一个Account AccountID ...以确保Analytics service有效。 确实如此。我能够获得 AccountID ,但我无法上传我的费用数据。我不知道出了什么问题......但是当它试图获取Upload对象时它会被卡住。

它不会抛出异常。它只是在那里,什么都不做。有什么我想念的吗?我将不胜感激任何帮助。

1 个答案:

答案 0 :(得分:1)

原来我下载了java客户端库1.13.2。来自here

Java客户端库不包含管理API google-api-services-analytics-v3所以我从here下载了最新版本 v3-rev20-1.8.0-beta

我在开发者指南client libraries link

中找到了

但是今天我找到了 rev26-1.13.2-beta here并在我的解决方案中使用了它。现在一切正常,所以这只是由于开发者指南中误导性链接引起的不兼容问题。

修改

对于未来挣扎于此问题的人们。确保您的库兼容。正如您所看到的,我能够获得第一个帐户的AccountID,所以我认为一切都很好,但事实并非如此。 Google指南中有许多具有误导性的链接以及我通过Google网上论坛报告的内容。对我来说有一个暗示。我有 google-api-java-client- 1.13.2 -beta google-api-services-analytics-v3-rev20- 1.8。 0 -beta

但问题是没有更新版本的迹象......我从他们的mercurial存储库中下载了我认为最新的内容。而且还有一个较新的版本只能从开发人员指南深处的一个链接访问。我希望将来会更好。