我试着用java执行You-tube analytics,使用git hub中的java示例代码,示例代码允许我在允许访问的地方获得用户同意页面,当试图使用 "reports().query(" ").execute() "执行查询时,我得到404资源未找到响应。
当执行下面的方法时,我得到404 not found异常。
private static ResultTable executeViewsOverTimeQuery(YouTubeAnalytics analytics,
String id) throws IOException {
return analytics.reports()
.query("channel==" + id, // channel id
"2020-01-14", // Start date.
"2020-01-16", // End date.
"views,uniques") // Metrics.
.setDimensions("day")
.setSort("day")
.execute();
}
当我在API资源管理器中尝试同样的方法时,它给出了返回200 ok的响应。
API Explorer URL:https:/apis-explorer.appspot.comapis-explorer#pyoutubeAnalyticsv2youtubeAnalytics.reports.query。
控制台日志。
Jan 16, 2020 7:12:08 PM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly.
警告:无法更改所有人的权限。C:\Users\yoga.oauth-credentials。
2020年1月16日 7:12:08 PM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly
警告:无法更改所有者的权限:C:\Users\yoga.oauth-credentials。
2020-01-16 19:12:08.993:INFO::通过org.mortbay.log.StdErrLog记录到STDERR。
2020-01-16 19:12:08.994:INFO::jetty-6.1.26
2020-01-16 19:12:09.012:INFO::Started SocketConnector@localhost:8080。
现在试图在默认浏览器中打开该地址......
2020-01-16 19:12:21.400:INFO::Stopped SocketConnector@localhost:8080
默认通道:[email protected] ( UCxxxxxxxxxxxxxxxxx )
IOException: 404 Not Found
未找到
com.google.api.client.googleapis.json.GoogleJsonResponseException。404未找到
未找到
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:321)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1056)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
at com.google.api.services.samples.youtube.cmdline.analytics.YouTubeAnalyticsReports.executeViewsOverTimeQuery(YouTubeAnalyticsReports.java:134)
at com.google.api.services.samples.youtube.cmdline.analytics.YouTubeAnalyticsReports.main(YouTubeAnalyticsReports.java:103)
你有没有尝试设置 startDate
和 endDate
以及其他参数,使用适当的API而不是将它们传递给 query()
方法?
类似的东西。
private static ResultTable executeViewsOverTimeQuery(YouTubeAnalytics analytics,
String id) throws IOException {
return analytics.reports()
.query()
.setEndDate("2020-01-16")
.setIds("channel==" + id)
.setMetrics("views,uniques")
.setStartDate("2020-01-14")
.setDimensions("day")
.setSort("day")
.execute();
}
这里你可以找到类似的例子。reports -query -examples