【发布时间】:2014-03-24 09:41:48
【问题描述】:
我一直在尝试使用 javascript 获取 this playlist 中的所有项目,其中包含 64 个项目。
这是我一直在使用的函数获取响应并显示响应中的项目:
function getPlaylistItems( playlistId, maxResults, pageToken ) {
var requestOptions = {
playlistId: playlistId,
part: 'snippet',
maxResults: maxResults,
fields: "items,nextPageToken"
};
if ( pageToken ) {
requestOptions.pageToken = pageToken;
}
var request = gapi.client.youtube.playlistItems.list( requestOptions );
request.execute( function( response ) {
var playlistItems = response.items;
console.log( playlistItems.length, playlistItems );
$.each( playlistItems, function( index, item ) {
displayResult( item.snippet.title );
} );
if ( response.nextPageToken ) {
console.log( response.nextPageToken );
getPlaylistItems( playlistId, maxResults, response.nextPageToken );
}
} );
displayResult( "---" );
}
如果 maxResults = 25,那么第一次迭代会返回视频 01-25,这是您所期望的。
但第二次迭代是从 31 到 55。第三个里面没有东西。所以我错过了 26-30 和 56-64。
With maxResults = 10 I am missing 31-40.
With maxResults = 20 I am missing 41-60.
With maxResults = 30 I am missing 31-40.
(这不是代码 ^^ Stackoverflow 不允许我发布其他内容:S)
是我做错了什么还是我没有得到正确的 nextPageToken?
编辑:现在已修复。
【问题讨论】: