【问题标题】:Request through reports.query() for YouTubeAnalytics v2 API throws 400 error通过 YouTubeAnalytics v2 API 的 reports.query() 请求引发 400 错误
【发布时间】:2019-05-02 16:24:43
【问题描述】:

我正在尝试从 YouTubeAnalytics API 的 V1 迁移到 V2。但我无法弄清楚我应该以何种格式陈述查询。

我正在尝试运行的代码:

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."
}

有什么建议吗?

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 谢谢威利,我仍然收到 400 错误代码,但消息不同。已更新我的问题以反映这一点。
    【解决方案2】:

    我以不正确的方式传递了 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/

    【讨论】:

    • 救命稻草,非常感谢!不清楚开始日期和结束日期是否必要
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 2022-01-04
    • 2012-02-19
    • 2020-11-13
    • 2011-06-18
    相关资源
    最近更新 更多