我一直在从事一个从 YouTube Analytics API 提取分析数据的项目(v1、v1beta1 提供相同的结果)。我开始在批处理调用中没有返回任何行,当然,我怀疑自己有错误。
我在 Google APIs Explorer 中重新创建了我的程序中的一个查询,以查看我可能出错的地方。这就是事情变得复杂的地方。
注意:我正在使用 OAuth 并在所有位置使用同一用户的 OAuth 身份验证执行我的程序和 API 资源管理器。出于显而易见的原因,我省略了Authorization Bearer [token]
这篇文章的细节。
Google API Explorer 查询:
GET https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-05-31&metrics=views%2CestimatedMinutesWatched&dimensions=insightTrafficSourceType&filters=video%3D%3DEeEHdFmKrGo%3Bcountry%3D%3DUS&fields=rows&key={YOUR_API_KEY}
Google API Explorer 结果:
200 HTTP/2.0 200
- Show headers -
{
}
邮递员查询:
GET https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-05-31&metrics=views%2CestimatedMinutesWatched&dimensions=insightTrafficSourceType&filters=video%3D%3DEeEHdFmKrGo%3Bcountry%3D%3DUS&fields=rows
邮递员结果:
{
"rows": [
[
"YT_PLAYLIST_PAGE",
83,
153
],
[
"YT_CHANNEL",
21,
38
],
[
"PLAYLIST",
103,
193
],
[
"SUBSCRIBER",
41,
63
],
[
"NOTIFICATION",
16,
5
],
[
"ADVERTISING",
1954,
2973
],
[
"RELATED_VIDEO",
179,
294
],
[
"YT_OTHER_PAGE",
16,
20
],
[
"EXT_URL",
98,
189
],
[
"NO_LINK_OTHER",
603,
23
],
[
"YT_SEARCH",
80,
130
]
]
}
所以数据是可用的。为什么 API Explorer 不显示它?API Explorer 与我的程序的行为相匹配:没有返回行。
是的,如果我省略该fields
值,它将给我列标题:
200 HTTP/2.0 200
- Show headers -
{
"kind": "youtubeAnalytics#resultTable",
"columnHeaders": [
{
"name": "insightTrafficSourceType",
"columnType": "DIMENSION",
"dataType": "STRING"
},
{
"name": "views",
"columnType": "METRIC",
"dataType": "INTEGER"
},
{
"name": "estimatedMinutesWatched",
"columnType": "METRIC",
"dataType": "INTEGER"
}
]
}
其他类似问题:
- ROWS 没有在 Youtube Analytics API 中返回?
- YouTube Analytics API 不会返回 ROWS 以查询特定视频
- YouTube Analytics API 不返回人口统计查询的行 - 但确实返回视图
- YouTube Analytics API 频道:响应没有行参数
我已经验证了这些问题中的一些线索。
- 我正在获取查询数据......只是不是通过批处理或 API 资源管理器。
- 和#1一样,真的。如果我更改或扩展日期范围,API Explorer 仍然不返回任何行,而 Postman 的查询显示行。
- 参见#4 的调查
- 我可以在 YouTube 界面中提取报告——作为用于 API Explorer 和我的程序的同一用户——并查看数据。
该数据与我从 Postman 的查询中获得的数据相匹配。这意味着相同的数据应该可以通过 API Explorer 和批处理请求获得,但是它们显然不同。
错过了什么吗?我不应该在 API Explorer 的响应中收到行吗?GET
同样,批处理响应不应该包含与我通过邮递员看到的直接请求相同的内容吗?
任何有关进一步探索的见解或建议表示赞赏。如果你已经做到了这一步,谢谢你的时间。
阁楼