通过report.query()请求YouTubeAnalytics v2 API会引发400错误

时间:2018-11-30 13:47:38

标签: java youtube youtube-api youtube-analytics-api

我正在尝试从YouTubeAnalytics API的V1迁移到V2。但是我无法弄清楚查询的格式。

代码Iam试图运行:

return analytics.reports().query()
            .setIds(id)
            .setMetrics("views")
            .setDimensions("video")
            .execute();

但是我得到如下的错误代码400:

IOException: 400 Bad Request
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Could not parse content (CNHFwpxMq_TDnbpX_3GdjueOg) of field ids.",
    "reason" : "badRequest"
  } ],
  "message" : "Could not parse content (CNHFwpxMq_TDnbpX_3GdjueOg) of field ids."
}

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您尝试过这样的事情吗?

    return analytics.reports()
        .query() // Metrics.
        .setIds(id)
        .setStartDate("2012-01-01")
        .setEndDate("2012-08-14")
        .setMetrics("views,subscribersGained,subscribersLost")
        .setDimensions("video")
        .setSort("-views")
        .setMaxResults(10)
        .execute();

您可以在此处查看这些方法: YouTube API v2

答案 1 :(得分:1)

我以错误的方式传递了ID。同样,API(v2)不支持带有给定指标和维度集的查询。正确的代码是:

return analytics.reports().query()
                .setIds("channel==" + id)
                .setStartDate("2018-11-29")
                .setEndDate("2018-12-01")
                .setMetrics("views")
                .setDimensions("day")
                .execute();

您可以在此处浏览受支持的查询列表: https://developers.google.com/youtube/reporting/