【问题标题】:Youtube data API version 3 paginationYoutube 数据 API 版本 3 分页
【发布时间】:2014-09-24 14:44:23
【问题描述】:

我了解 youtube 响应包含下一页和上一页标记,我们可以使用这些标记转到上一页和下一页。

例如:

https://www.googleapis.com/youtube/v3/search?&key={key}&part=snippet&maxResults=20&order=viewCount&q=abc&type=video&videoDuration=long&videoType=movie&pageToken=Cd323A

我的问题是如何导航到特定搜索的 nth 页面?

请注意,有些人可能认为这是不可能的。但我已经看到一些网站实现了这一点。

【问题讨论】:

    标签: api youtube pagination


    【解决方案1】:

    Youtube API 仅提供NextPageTokenPreviousPageToken,仅此而已,抱歉:请参阅此处的文档:https://developers.google.com/youtube/v3/docs/videos/list

    您仍然可以创建分页项,但您必须通过多次调用 URL、每次在您的请求中将 NextPageToken 作为 pageToken 传递并缓存结果来实现它。

    对了,这个问题已经在这里回答了(见回答的第1点):youtube data api v3 php search pagination?

    引用他们:

    特别是您需要每页 50 页的情况 显示 3 个分页,如 (1,2,NEXT) 然后您需要获取结果 两次。您将保留在缓存中的两个结果,因此对于第 1 页和第 2 页 结果将从缓存中检索。接下来你要确保 您正在通过发送 nextPageToken 再次查询 google。

    因此要显示分页 1-n 和每页 50 个结果,那么您需要 对 google api 进行 n-1 次查询。但是,如果您每次显示 10 个结果 页面,然后您可以对 50 个结果进行单个查询,您可以使用这些查询 在检索结果的帮助下显示前 5 页 (1-5),并在 接下来你应该像上面一样再次发送下一页令牌。

    注意 - Google youtube api 最多提供 50 个结果。

    【讨论】:

    • 我在发布问题之前阅读了给定的链接,我仍然发布此链接,因为即使 youtube 中的实际情况发生变化,缓存结果也会导致相同的结果。这将导致在缓存清除之前设置相同的结果。非常感谢您的尝试。
    • 对不起,我没有明白你的最后一点:你的缓存有什么问题?
    • 如果结果被缓存,用户将看到相同的结果。这不是预期的行为。理想情况下,它应该是 YouTube 的动态结果(当搜索权重和阈值发生变化时,应该更改结果)
    • 不,我们谈论的是本地缓存,因此所有用户的结果不会相同。如果您的搜索发生变化,您必须更改缓存
    • 你能告诉我,你如何在不影响长期结果的情况下在本地缓存。如果我打算为接下来的 10 个项目显示分页,我该怎么做。我奖励赏金以表示感谢。
    【解决方案2】:

    nextPageToken 和 prevPageToken 随 api 请求一起提供。

    现在您将令牌保存在一个数组中,然后将其作为 nextPageToken 插入另一个 api 调用中,您将获得下一页。当你得到下一页结果时,你会得到一个 prevPageToken。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-10
      • 1970-01-01
      • 2014-05-17
      • 2019-06-08
      • 1970-01-01
      相关资源
      最近更新 更多