我正在尝试使用Java从Google分析报告API访问数据。
我正在关注“Hello Analytics API: Java quickstart for installed applications”教程,我做了一切告诉你的事情,我得到了以下问题:
com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly
WARNING: unable to change permissions for everybody: C:\Users\<user>\.store\hello_analytics
com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly
WARNING: unable to change permissions for owner: C:\Users\timst\.store\hello_analytics
java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:78)
at java.io.InputStreamReader.<init>(InputStreamReader.java:72)
at com.example.demo.HelloAnalytics.initializeAnalytics(HelloAnalytics.java:60)
at com.example.demo.HelloAnalytics.main(HelloAnalytics.java:44)
我尝试使用client_secret.json
的完整路径。
尝试使用我在网上找到的不同方法,但似乎都没有。
在对此错误感到沮丧后,我尝试了“Hello Analytics API: Java quickstart for service accounts”教程。
但是我在这里遇到的问题是我无法将用户添加到我可以访问的帐户的帐户,属性或视图中。 我可以访问其他人的分析帐户,我只能从帐户中删除自己。
我使用的所有代码均来自教程,使用Intellij
和gradle
。
tl;dr;
我想要做的就是访问我所有人的分析数据 帐户,使用报告API,所以我可以把所有这些数据放在我自己的 数据库并将此数据库用于我的其他项目。 谷歌提供的教程对我不起作用。 (数据主要是Google Adwords数据。)
答案 0 :(得分:0)
所以警告不是问题,这是一个已知的问题,它在Windows上无法正常工作。
[[ 0.84768459 -0.56344453 0.00365928 0.21441586 -1.70290447 -0.18460676
1.6167634 0.08556331 0.02152226 -0.05111953 0.07310608 -0.073653 ]]
是因为我调用的配置文件没有给定指标的数据行。所以调用的返回值没有java.lang.NullPointerException
方法,因为没有行值。
你应该首先检查行,
.getRows()
在示例中,我还使用ColumnHeaders,您也应该先检查。
检查我有权访问的每个帐户以及每个webProperty和Profile都更容易,而不仅仅是每个帐户的第一个值。
此外,query explorer非常有用。您应该使用它来查看可以使用的指标和维度。
以下是我的完整GaData results;
if (null != results) {
if(results.get("rows") != null){
if (!results.getRows().isEmpty()){
//do something with the rows exp.
for (List<String> row : results.getRows()) {
for (int i=0; i<results.getColumnHeaders().size();i++) {
List<GaData.ColumnHeaders> headers = results.getColumnHeaders();
System.out.println( headers.get(i).getName()+": " + row.get(i));
}
}
}
}
}
课程我只是打印了可能对控制台有用的所有内容我还使用了HelloAnalytics
方法中的多个指标和Google AdWords维度:
getResults