Google People API listDirectoryPeople接口pageToken调用总是无效
Google People API listDirectoryPeople 分页Token无效400错误常见原因
你遇到的INVALID_ARGUMENT错误,返回信息如下:
Page token is invalid. Retry call without the page token.
同一Token在官方测试工具可正常调用、自行调用报错,基本都是以下几类原因:
核心原因
- 请求参数不匹配
pageToken和首次请求的核心参数是强绑定的,第二次调用时如果readMask、sources、pageSize任意一个参数和首次请求不一致,就会触发token无效错误。官方测试工具会自动保留上一次请求的全量参数,因此不会出现该问题。 - Token编码/传输异常
- 拿到返回的pageToken后如果做了多余的URL编码/解码操作,会导致Token内容被篡改
- 部分HTTP客户端会自动对请求参数做URL转义,如果提前对Token做过编码,会导致二次转义后Token失效
- 代码中处理Token时意外截断、新增空格等字符,也会导致无效
- 身份凭证不一致
pageToken和请求身份是绑定的,如果自行调用时使用的OAuth账号、服务账号、服务账号模拟的用户身份,和官方测试工具中登录的账号身份不一致,也会出现Token无效的问题。
排查步骤
- 核对两次请求的所有参数,确保
readMask、sources、pageSize三个核心参数和第一次请求完全一致,无任何修改 - 打印第二次请求实际发出的完整请求URL/参数,确认pageToken的值和首次返回的完全一致,无多余转义字符、空格、截断
- 核对两次请求使用的身份凭证,确保权限范围、账号身份完全一致
- 如果使用封装好的HTTP客户端库,检查是否开启了自动参数转义,避免Token被二次编码
内容的提问来源于stack exchange,提问作者Heinzlmaen
相关产品推荐
相关产品推荐

