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

Dropbox Java API-文件所有者电子邮件,java,api,email,dropbox,owner,Java,Api,Email,Dropbox,Owner,Dropbox的JavaAPI通过如下方法返回文件所有者名称列表 public List<String> getOwners(DbxClientV2 client, String fileId) { SharedFileMetadata metadata = client.sharing().getFileMetadata(); return metadata.getOwnerDisplayNames(); } public List getowner(DbxClientV

Dropbox
Java
API通过如下方法返回文件所有者名称列表

public List<String> getOwners(DbxClientV2 client, String fileId) {
  SharedFileMetadata metadata = client.sharing().getFileMetadata();
  return metadata.getOwnerDisplayNames();
}
public List getowner(DbxClientV2客户端,字符串fileId){
SharedFileMetadata元数据=client.sharing().getFileMetadata();
返回metadata.getOwnerDisplayNames();
}

是否也有办法获取电子邮件地址?

根据Dropbox v2文档,它有端点-
/get\u file\u元数据

示例
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\": []}"
返回:

{
    "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\u display\u name
列表(字符串)?
拥有文件的用户的显示名称。如果该文件是团队文件夹的一部分,则还包括团队管理员的显示名称。如果无法获取所有者显示名称,则不存在。此字段是可选的


因此,根据文件,没有关于用户电子邮件的信息。

要使用Dropbox Java SDK获取共享文件成员的信息,您应该使用
listFileMembers
*方法。根据您的用例和所需的批处理/分页方法,您可以选择几个版本:


获取所有者的一种方法是通过协作元数据:

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;
}
public List getowner(DbxClientV2客户端,字符串fileId){
SharedFileMetadata元数据=client.sharing().getFileMetadata();
List users=metadata.getUsers();
列表所有者=新的ArrayList();
for(UserFileMembershipInfo用户:用户)
if(user.getAccessType()==AccessLevel.OWNER){
添加(info.getUser().getDisplayName());
}
返回所有者;
}

是的,这也是我的印象。我希望这些信息能够以某种方式提供,就像在其他云存储系统中一样,比如GoogleDrive和Box。不管怎样,谢谢你和+1。如果共享了文件,并且添加了成员(包括电子邮件地址),这就是工作
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;
}