Google 驱动器 API - 列出文件的权限
Google Drive API - List Permissions of a file
我正在使用列表权限端点 (https://developers.google.com/drive/api/v3/reference/permissions/list) 获取共享驱动器中存在的文件的所有权限。
我 运行 发现共享驱动器中的一个文件存在问题。该文件有 100 个权限。共享驱动器文件的最大权限数 return 为 100,因此我只需要发出一个请求即可获得该文件的所有权限,而 API 不应该 return 下一页标记。
但这不是我遇到的行为,在第一个请求之后,我不断从 API 返回相同的下一页令牌。
所以对于下面的代码(用 go 编写),我进入了一个无限循环,因为我不断地得到相同的下一页标记。
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)
我应该在我的代码中考虑这种情况吗?从文档中,这从未被提及,所以我认为这不应该发生。
您的 permissionService
中似乎没有添加 PageToken
参数。您实际上是在请求权限服务的前 100 个相同结果。
不熟悉这门语言但是是这样的
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...)
}
如果文件有 < 100 个结果,您是否也可以先验证 result.NextPageToken
是否会 return“”,我使用 API 资源管理器和 Apps 脚本来访问此 API 并且当权限列表小于 pageSize
时 nextPageToken
不是响应主体的一部分。
我正在使用列表权限端点 (https://developers.google.com/drive/api/v3/reference/permissions/list) 获取共享驱动器中存在的文件的所有权限。
我 运行 发现共享驱动器中的一个文件存在问题。该文件有 100 个权限。共享驱动器文件的最大权限数 return 为 100,因此我只需要发出一个请求即可获得该文件的所有权限,而 API 不应该 return 下一页标记。
但这不是我遇到的行为,在第一个请求之后,我不断从 API 返回相同的下一页令牌。
所以对于下面的代码(用 go 编写),我进入了一个无限循环,因为我不断地得到相同的下一页标记。
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)
我应该在我的代码中考虑这种情况吗?从文档中,这从未被提及,所以我认为这不应该发生。
您的 permissionService
中似乎没有添加 PageToken
参数。您实际上是在请求权限服务的前 100 个相同结果。
不熟悉这门语言但是是这样的
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...)
}
如果文件有 < 100 个结果,您是否也可以先验证 result.NextPageToken
是否会 return“”,我使用 API 资源管理器和 Apps 脚本来访问此 API 并且当权限列表小于 pageSize
时 nextPageToken
不是响应主体的一部分。