>Dropbox
的Java
API 通过类似
public List<String> getOwners(DbxClientV2 client, String fileId) {
SharedFileMetadata metadata = client.sharing().getFileMetadata();
return metadata.getOwnerDisplayNames();
}
有没有办法获取电子邮件地址?
根据 Dropbox v2 文档,它有端点 -/get_file_metadata
.
请求curl
示例:
curl -X POST https://api.dropboxapi.com/2/sharing/get_file_metadata
--header "Authorization: Bearer <access token> "
--header "Content-Type: application/json"
--data "{"file": "id:3kmLmQFnf1AAAAAAAAAAAw","actions": []}"
参数:
{
"file": "id:3kmLmQFnf1AAAAAAAAAAAw",
"actions": []
}
返回:
{
"id": "id:3kmLmQFnf1AAAAAAAAAAAw",
"name": "file.txt",
"policy": {
"acl_update_policy": {
".tag": "owner"
},
"shared_link_policy": {
".tag": "anyone"
},
"member_policy": {
".tag": "anyone"
},
"resolved_member_policy": {
".tag": "team"
}
},
"preview_url": "https://www.dropbox.com/scl/fi/fir9vjelf",
"access_type": {
".tag": "viewer"
},
"owner_display_names": [
"Jane Doe"
],
"owner_team": {
"id": "dbtid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I",
"name": "Acme, Inc."
},
"path_display": "/dir/file.txt",
"path_lower": "/dir/file.txt",
"permissions": [],
"time_invited": "2016-01-20T00:00:00Z"
}
owner_display_names
List of (String)?
拥有该文件的用户的显示名称。如果文件是团队文件夹的一部分,则还包括团队管理员的显示名称。如果无法获取所有者显示名称,则为"不存在"。此字段是可选的。
因此,根据文件,没有有关用户电子邮件的信息。
要使用 Dropbox Java SDK 获取共享文件成员的相关信息,您应该使用listFileMembers
* 方法。您可以选择几个版本,具体取决于您的用例和所需的批处理/分页方法:
- https://dropbox.github.io/dropbox-sdk-java/api-docs/v3.1.x/com/dropbox/core/v2/sharing/DbxUserSharingRequests.html#listFileMembers-java.lang.String-
- https://dropbox.github.io/dropbox-sdk-java/api-docs/v3.1.x/com/dropbox/core/v2/sharing/DbxUserSharingRequests.html#listFileMembersBatch-java.util.List-
- https://dropbox.github.io/dropbox-sdk-java/api-docs/v3.1.x/com/dropbox/core/v2/sharing/DbxUserSharingRequests.html#listFileMembersBatch-java.util.List-long-
- https://dropbox.github.io/dropbox-sdk-java/api-docs/v3.1.x/com/dropbox/core/v2/sharing/DbxUserSharingRequests.html#listFileMembersBuilder-java.lang.String-
- https://dropbox.github.io/dropbox-sdk-java/api-docs/v3.1.x/com/dropbox/core/v2/sharing/DbxUserSharingRequests.html#listFileMembersContinue-java.lang.String-
获取所有者的一种方法是通过协作元数据:
public List<String> getOwners(DbxClientV2 client, String fileId) {
SharedFileMetadata metadata = client.sharing().getFileMetadata();
List<UserFileMembershipInfo> users = metadata.getUsers();
List<String> owners = new ArrayList<>();
for (UserFileMembershipInfo user : users)
if (user.getAccessType() == AccessLevel.OWNER) {
owners.add(info.getUser().getDisplayName());
}
return owners;
}