python - YouTube API nextPageToken 返回不可用的结果
问题描述
我正在使用 Python googleapiclient 加载返回列表的下一页。我的第一个查询返回一个 nextPageToken:
videos = api_service.search().list(
part='snippet',
maxResults=20,
forMine=True,
type='video').execute()
返回的页面令牌如下所示:
'nextPageToken': 'Cib39GFvs_____81QzNjeU5TRXRMTQD_Af_-NUMzY3lOU0V0TE0AARAUIdZeR03mYiWvOQAAAABMkJ4LSAFQAloLCc8daUP6sg3iEAJgjv3Z_gQ='
在我找到的所有文档中,页面标记几乎总是一个 6 个字符的字符串,如下所示:CA8QAA
.
当我再次查询发送返回给我的 pageToken 时,我得到了相同的初始视频结果:
videos = api_service.search().list(
part='snippet',
maxResults=20,
pageToken=request.GET.get('next_page_token'),
forMine=True,
type='video').execute()
这可能是什么原因造成的?
解决方案
我想到了。注意=
令牌末尾的标志...Jgjv3Z_gQ=
。
令牌正确地传递给客户端。但是,一旦我尝试执行 GET,就会=
转换为 unicode%3D
我的解决方案是不从客户端获取令牌。相反,我将它作为字符串加载到服务器会话中,并直接通过googleapiclient
库传递它。
我的代码现在是:
if request.GET.get('next_page_token'):
page_token = request.session['next_page_token']
else:
page_token = ''
videos = api_service.search().list(
part='snippet',
maxResults=50,
pageToken=page_token,
forMine=True,
type='video').execute()
try:
request.session['next_page_token'] = videos['nextPageToken']
except KeyError:
pass
推荐阅读
- angular - RxJS 在循环中创建 Observables
- react-native - onNotificationOpened 方法未在反应本机 Firebase 中被调用
- python - 如何在 numpy/numba 中迭代两个数组(zip 抛出错误)
- java - Java:将对象列表转换为另一个哈希图中的哈希图
- reactjs - 删除 Expo 中的默认启动画面(React Native)
- reactjs - React Navigation“焦点”事件侦听器不使用更新值
- discord.py - Bot 不断执行循环的随机部分
- javascript - 我在 nuxtjs 中使用矩函数时遇到问题
- azure-devops - 验证 AzDO 颁发的 JWT 所需的公钥
- django - 使用主管运行 Celery 时出现“找不到模块”