首页 > 解决方案 > 如何使用 pageToken?

问题描述

我正在开发一个简单的程序,这是我第一次使用 Youtube API。我想从任何视频中获取所有评论,但如果没有“pageToken”,我就无法做到这一点,有人告诉我。我似乎无法理解它的作用或如何使用它。我正在使用 node.js v13。

标签: node.jsyoutube-apiyoutube-data-api

解决方案


顶级评论和相关回复

根据官方文档,可以使用两个 API 端点来读取附加到任何给定视频的评论——由其 ID 标识:

  1. CommentThreads.list
  2. Comments.list.

任何给定视频的评论的结构使得上面的第一个端点在使用参数集 as调用时返回一组分页顶级评论(即资源) ,其中是您感兴趣的视频的 ID。CommentThreadsvideoIdvideoId=VIDEO_IDVIDEO_ID

上面的第二个 API 端点用于获取附加到任何给定顶级评论的所有评论回复(即资源)的分页集,方法是为其参数指定相应顶级评论的 ID。CommentsparentId

请注意,即使CommentThreads资源在其属性中包含评论回复列表replies,根据文档,该列表也是不完整的。这就是为什么需要将CommentThreads.list端点与端点一起使用的原因Comments.list

属性nextPageToken和参数pageToken

现在,如上所述,APICommentThreads分别返回资源集和Comments资源集。这些集合是分页的,因为每个 API 调用将返回(按设计)不超过 50 个这样的项目。

因此,要CommentThreads通过 API 端点获取给定视频的所有资源CommentThreads.list,必须实现分页Comments.list在获取Comments任何给定顶级评论的所有资源时,API 端点也是如此。

分页的含义很简单:为了获得n分页结果集的第-页,其中,必须从第-页中n >= 2提取属性的值,例如,并将该值传递给-th API 调用参数的 URL为. 如果给定页面不包含该属性,则分页已结束。nextPageTokenn-1PAGE_TOKENnpageTokenpageToken=PAGE_TOKENnextPageToken

设计强加的 API 限制

根据谷歌官方工作人员的说法CommentThreads.list,通过对端点结果集进行分页获得的项目数量是有限的。

该限制未指定,因此需要考虑到,在某些情况下,不可能获得给定视频的所有顶级评论。这是不幸的,但却是事实。


推荐阅读