如何使用页面令牌?



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

顶级

注释和相关回复

根据官方文档,有两个API端点可供使用,w.r.t.读取任何给定视频附带的评论 - 由其ID标识:

  1. CommentThreads.list
  2. Comments.list.

任何给定视频的评论都是结构化的,即上面的第一个端点返回一组分页的顶级评论(即CommentThreads资源)调用时,参数videoId设置为videoId=VIDEO_ID,其中VIDEO_ID是您感兴趣的视频的 ID。

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

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

属性nextPageToken和参数pageToken

现在,如上所述,API 分别返回CommentThreads集和Comments资源集。这些集是分页的,因为每个 API 调用将返回(根据设计)不超过 50 个此类项。

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

分页的含义很简单:为了获得分页结果集的第n页,其中n >= 2,必须从n-1页中提取属性nextPageToken的值,例如PAGE_TOKEN,并将该值传递给调用参数pageTokenn-th API 作为pageToken=PAGE_TOKEN。如果给定页面不包含属性nextPageToken,则分页到达其末尾。

设计施加的 API 限制

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

没有指定该限制,因此需要考虑的是,在这种情况下,将无法获得给定视频的所有顶级评论。这是不幸的,但这是事实。

按照以下文档进行操作: https://developers.google.com/youtube/v3/quickstart/nodejs 它将回答您的所有问题。

相关内容

最新更新