使用Dropbox API共享文件夹时出现模式不匹配错误

时间:2017-09-01 16:13:23

标签: java android dropbox dropbox-api dropbox-sdk

我正在开发一款使用Dropbox Core SDK v3.0.3的Android应用。 在尝试与其他成员共享文件夹时,我不断收到错误消息。代码正在创建指定名称的新共享文件夹,但不添加任何成员。

这是我的代码:

List<AddMember> list = new ArrayList<AddMember>();
AddMember newMember = new AddMember(MemberSelector.email(clerkDbId), AccessLevel.EDITOR);
list.add(newMember);
ShareFolderLaunch sfl = dbxClient.sharing().shareFolder("/" + clerkName);
dbxClient.sharing().addFolderMember(sfl.getCompleteValue().toString(), list); //I am getting error here.

clerkName :共享文件夹的名称

clerkDbId :我要与之分享上述文件夹的Dropbox ID

我尝试将第一行更改为:

ArrayList<AddMember> list = new ArrayList<>();

我仍然得到同样的错误。这是我得到的错误:

  

String&#39; sharedFolderId&#39;与模式不匹配   java.lang.IllegalArgumentException:String&#39; sharedFolderId&#39;才不是   匹配模式       在com.dropbox.core.v2.sharing.AddFolderMemberArg。(AddFolderMemberArg.java:50)       在com.dropbox.core.v2.sharing.AddFolderMemberArg。(AddFolderMemberArg.java:86)       在com.dropbox.core.v2.sharing.DbxUserSharingRequests.addFolderMember(DbxUserSharingRequests.java:154)       at com.dbapp.ashworth.adminapp.FilesActivity $ 3 $ 1.doInBackground(FilesActivity.java:126)       at com.dbapp.ashworth.adminapp.FilesActivity $ 3 $ 1.doInBackground(FilesActivity.java:115)       在android.os.AsyncTask $ 2.call(AsyncTask.java:295)       在java.util.concurrent.FutureTask.run(FutureTask.java:237)       在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)       at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:588)       在java.lang.Thread.run(Thread.java:818)

任何人都可以告诉我,我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

错误消息表明您传递给addFolderMembernull参数值似乎不是有效的共享文件夹ID。

你传递了整个SharedFolderMetadata(作为一个字符串)。您应该只需获取共享文件夹ID,如下所示:

sharedFolderId

顺便说一句,在致电shareFolder时,您无法保证立即获得完整的信息。您应该使用ShareFolderLaunch.isComplete / ShareFolderLaunch.isAsyncJobId来检查您的回复。 shareFolder documentation

中有更多信息