我关注了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
对象时它会被卡住。
它不会抛出异常。它只是在那里,什么都不做。有什么我想念的吗?我将不胜感激任何帮助。
答案 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存储库中下载了我认为最新的内容。而且还有一个较新的版本只能从开发人员指南深处的一个链接访问。我希望将来会更好。