我正在使用 YouTube API 请求一组视频,我将 maxResults 设置为 50,在返回的对象中,我得到以下信息:[totalResults] => 271 [resultsPerPage] => 50。一切正常,但仅对象拥有 3 个视频。当我使用具有更多结果的搜索词时,它确实显示了更多但仍然不是它应该显示的 50,只有当返回大量视频时(比如 1000+)然后我在对象中得到 50,这里发生了什么?
这是我的请求代码:
$searchResponse = $youtube->search->listSearch('id,snippet', array(
'q' => "Let's Play The Legend of Zelda",
'maxResults' => 50,
'type' => 'video',
'videoEmbeddable' => 'true',
'publishedAfter' => date("Y-m-d\TH:i:sP",strtotime('-2 days')),
'videoDuration' => 'short',
'videoDefinition' => 'high',
'order' => 'viewCount',
));
Run Code Online (Sandbox Code Playgroud)
这是我返回的对象:
Array
(
...
[pageInfo] => Array
(
[totalResults] => 972
[resultsPerPage] => 50
)
[items] => Array
(
[0] => Array
...
[7] => Array
)
)
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它只有 8 个视频,而它有 972 个结果,应该给我 50 个。
这是 YouTube API 的问题。该totalResults
值可能返回不准确的数字,不应用于检查响应中有多少结果。
不幸的是,这是一个已知问题,总的来说,我建议将 totalResults 视为一个非常粗略的指南,并确保您不会围绕它构建任何分页逻辑。响应中 nextPageToken 的存在/不存在应该是指示是否有其他可用结果的唯一因素。
来源:https : //code.google.com/p/gdata-issues/issues/detail?id=6125&can=1
在这种情况下你可以做的是使用count()
函数来检查你有多少项目。
归档时间: |
|
查看次数: |
799 次 |
最近记录: |