3

我遵循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和打印第一个的AccountIDAccount ......只是为了确保它Analytics service有效。它确实如此。我可以获得AccountID,但无法上传我的成本数据。我不知道出了什么问题......但是当它试图获取Upload对象时它会卡住。

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

4

1 回答 1

1

原来我下载了java客户端库1.13.2。从这里

Java 客户端库不包含管理 APIgoogle-api-services-analytics-v3所以我从这里下载了最新的v3-rev20-1.8.0-beta

我在开发人员指南客户端库链接中都找到了

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

编辑

对于未来在这个问题上苦苦挣扎的人。确保您的库是兼容的。如您所见,我能够获取第一个帐户的 AccountID,所以我认为一切正常,但事实并非如此。谷歌指南中有许多误导性链接,我发现我通过谷歌群组报告的内容。对我来说有一个提示。我有google-api-java-client- 1.13.2 -betagoogle-api-services-analytics-v3-rev20- 1.8.0 -beta

但问题是没有更新版本的迹象......我从他们的 mercurial 存储库下载了我认为是最新的。仍然有一个更新的版本只能从开发人员指南深处的某个链接访问。我希望它在未来会更好。

于 2013-02-06T14:02:43.683 回答