我正在编写一个应用程序,用户通过Dropbox共享特定文件。我正在使用REST API。让我们说A共享一个文件到B.我知道A可以通过将B作为成员添加到文件(add_file_member)来共享文件,并且B可以通过list_received_files检查与他共享的文件。但我找不到B可以看到谁共享文件的方式。访问此信息似乎是合理的。有没有办法从B角度为用户A获取一些帐户ID或显示信息?
答案 0 :(得分:0)
/sharing/list_received_files返回的SharedFileMetadata
对象不包含此信息,但我确保将此信息作为功能请求传递。
但是,您可以使用/sharing/list_file_members列出共享文件的成员,以及他们的访问级别(例如,所有者,编辑器等)。
答案 1 :(得分:0)
C#Dropbox SDK的示例。
public async Task<string> GetSharedFileOwnerID(Dropbox.Api.Files.Metadata data, Dropbox.Api.DropboxClient DropboxClient)
{
string owner = "";
var file = data.AsFile;
if ((file.HasExplicitSharedMembers ?? false) || (file.SharingInfo != null))
{
// search the real file owner
var list = await DropboxClient.Sharing.ListFileMembersAsync(file.Id);
var list_continue = false;
do
{
var item = list.Users.First(i => i.AccessType.IsOwner);
if (item != null)
{
owner = item.User.AccountId;
break;
}
list_continue = (list.Cursor != null);
if (list_continue)
{
list = await DropboxClient.Sharing.ListFileMembersContinueAsync(list.Cursor);
}
}
while (list_continue);
}
return owner;
}
public async Task<string> GetSharedFoldeOwnerID(Dropbox.Api.Files.Metadata data, Dropbox.Api.DropboxClient DropboxClient)
{
string owner = "";
var folder = data.AsFolder;
if (folder.SharedFolderId != null)
{
// search the real folder owner
var list = await DropboxClient.Sharing.ListFolderMembersAsync(folder.SharedFolderId);
var list_continue = false;
do
{
var item = list.Users.First(i => i.AccessType.IsOwner);
if (item != null)
{
owner = item.User.AccountId;
break;
}
list_continue = (list.Cursor != null);
if (list_continue)
{
list = await DropboxClient.Sharing.ListFolderMembersContinueAsync(list.Cursor);
}
}
while (list_continue);
}
return owner;
}
C#Dropbox SDK是NuGet包。
使用Install-Package Dropbox.Api
进行安装。