如何通过Dropbox API访问团队文件夹下的Topics目录内容?
解决Dropbox API访问Topics文件夹时的invalid_root错误
你遇到的问题核心是错误地将shared_folder类型的命名空间ID作为Path-Root的root参数使用,Dropbox API的Path-Root规则里,只有用户个人根目录(root类型)或团队文件夹(namespace类型,对应team_folder命名空间)可以作为根路径,shared_folder类型的命名空间是挂载在父目录下的子文件夹,不能直接作为根。
正确的解决方案有两种:
方法1:基于团队文件夹命名空间访问Topics
使用My Company Team Folder的命名空间ID(即namespace_id: "2")作为Path-Root,然后在请求路径中指定/Topics:
- 请求头设置:
Dropbox-API-Select-User=ABCEDFDropbox-API-Path-Root={"tag": "namespace", "namespace_id": "2"}
- 向
/2/files/list_folder发送POST请求,请求体参数:{ "path": "/Topics" }
这样就能直接列出Topics文件夹下的内容。
方法2:通过文件夹ID直接访问
先获取Topics文件夹的folder_id,再用该ID调用list_folder:
- 调用
/2/files/get_metadata,使用用户根目录作为Path-Root(Dropbox-API-Path-Root={"tag": "root", "root": "1"}),请求体参数:
响应中会返回Topics的{ "path": "/My Company Team Folder/Topics" }folder_id(比如假设为xyz)。 - 调用
/2/files/list_folder,请求体参数:
同时保留{ "path": "xyz" }Dropbox-API-Select-User=ABCEDF头即可,无需额外设置Path-Root(或使用对应根路径)。
补充说明
/2/team/namespaces/list返回的shared_folder类型命名空间,对应的是该共享文件夹的shared_folder_id,这个ID用于管理共享权限等操作,不能直接作为Path-Root的根路径使用。只有team_folder类型的命名空间ID才能作为namespace类型的Path-Root参数。
内容的提问来源于stack exchange,提问作者craig
相关产品推荐
相关产品推荐

