首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Drive API -列出文件的权限

Google Drive API -列出文件的权限
EN

Stack Overflow用户
提问于 2021-01-06 00:56:28
回答 1查看 91关注 0票数 1

我正在使用列表权限终结点(https://developers.google.com/drive/api/v3/reference/permissions/list)获取共享驱动器中存在的文件的所有权限。

我遇到了一个问题,因为我的文件位于共享驱动器中。该文件有100个权限。对共享驱动器文件返回的权限数量的最大限制是100,因此我应该只需要发出一次请求来获取该文件的所有权限,并且API不应返回下一页标记。

但这不是我正在经历的行为,在第一次请求之后,我不断地从API得到相同的下一页令牌。

因此,对于下面的代码(用go编写),我进入了一个无限循环,因为我不断地得到相同的下一页令牌。

代码语言:javascript
复制
var permissionService PermissionsService := getPermissionsService()

fileID := "1234abcd"
nextPageToken := ""
anotherPage := true
permissions := []*Permission{}
for anotherPage {
    result, err := permissionService.
        List(fileID).
        SupportsAllDrives(true).
        SupportsTeamDrives(false).
        Fields("*").
        PageSize(100).
        Do()
    if err != nil {
        panic(err)
    }
    anotherPage = result.NextPageToken != ""
    nextPageToken = result.NextPageToken
    permissions = append(permissions, result.Permissions...)
}

fmt.Println("Permissions", permissions)

我应该在我的代码中说明这种情况吗?在文档中,从来没有提到过这一点,所以我认为这不应该发生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-06 01:19:16

您似乎没有在permissionService中添加PageToken参数。实际上,您请求的是权限服务的前100个结果。

不熟悉这种语言,但大致是这样的

代码语言:javascript
复制
for anotherPage {
    result, err := permissionService.
        List(fileID).
        SupportsAllDrives(true).
        SupportsTeamDrives(false).
        Fields("*").
        PageSize(100).
        PageToken(nextPageToken).
        Do()
    if err != nil {
        panic(err)
    }
    anotherPage = result.NextPageToken != ""
    nextPageToken = result.NextPageToken
    permissions = append(permissions, result.Permissions...)
}

您是否也可以先验证result.NextPageToken是否会返回"“如果文件有< 100个结果,当权限列表小于pageSize时,我使用API explorer和应用脚本访问此接口,并且nextPageToken不是响应体的一部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65583255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档