Box Python SDK获取文件上传者信息显示匿名的问题求助
问题:Box Python SDK获取文件上传者邮箱时返回匿名用户
我正在使用Box SDK列出文件夹中的所有文件,代码如下:
request_url = f"https://api.box.com/2.0/folders/{folder_id}/items" request = self.client.make_request("GET", request_url, params={"limit": limit, "offset": offset, "fields": ["created_by"]}) data = request.json()
返回的data里的entries字段包含文件元数据,但请求的created_by显示为匿名用户:{'type': 'user', 'id': '2', 'name': 'Anonymous User', 'login': ''}
奇怪的是,Box网页UI的“Updated”列能看到具体信息,比如“Yesterday By user@email.com”。我尝试添加modified_by到请求字段中,结果仍然显示匿名用户。
请问有人成功通过Box Python SDK获取到文件上传者的邮箱信息吗?
解决方案
检查应用权限
你的Box应用需要开启read_users权限,否则无法获取用户的详细信息(包括邮箱)。登录Box开发者控制台,找到你的应用,在「权限」设置里开启read_users权限,然后重新授权应用。指定用户字段的嵌套属性
默认情况下,created_by或modified_by只返回基础用户对象,不会包含login字段。需要在请求的fields参数里明确指定嵌套字段:request_url = f"https://api.box.com/2.0/folders/{folder_id}/items" request = self.client.make_request("GET", request_url, params={"limit": limit, "offset": offset, "fields": ["created_by", "created_by.login", "modified_by", "modified_by.login"]}) data = request.json()这样返回的用户对象会包含
login字段(即邮箱),前提是应用有权限访问该用户信息。确认文件上传场景
- 如果文件是通过公共链接匿名上传的,那么
created_by确实会显示为匿名用户,网页UI显示的可能是后续修改该文件的内部用户。 - 如果文件是内部用户上传,但仍显示匿名,检查你的应用是否被授权访问该用户的信息,或者尝试用管理员账号授权应用后重试。
- 如果文件是通过公共链接匿名上传的,那么
内容的提问来源于stack exchange,提问作者MarcelD
相关产品推荐
相关产品推荐

