Dropbox Java API - 文件所有者电子邮件



>DropboxJavaAPI 通过类似

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_namesList 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;
}

相关内容

最新更新