0

我正在开发一个使用 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<>();

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

字符串“sharedFolderId”与模式 java.lang.IllegalArgumentException 不匹配:字符串“sharedFolderId”与 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) 在 com.dbapp.ashworth.adminapp.FilesActivity$3$1.doInBackground(FilesActivity. java:126) 在 com.dbapp.ashworth.adminapp.FilesActivity$3$1.doInBackground(FilesActivity.java:115) 在 android.os.AsyncTask$2.call(AsyncTask.java:295) 在 java.util.concurrent.FutureTask。在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 在 java.util.concurrent 运行(FutureTask.java:237)。ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 在 java.lang.Thread.run(Thread.java:818)

谁能告诉我我在这里做错了什么?

4

1 回答 1

1

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

您正在传递整个SharedFolderMetadata(作为字符串)。相反,您应该像这样获取共享文件夹 ID:

sfl.getCompleteValue().getSharedFolderId();

顺便说一句,打电话时shareFolder,您不能保证立即获得完整的信息。你应该使用ShareFolderLaunch.isComplete/ShareFolderLaunch.isAsyncJobId来检查你得到了什么。更多信息在shareFolder documentation

于 2017-09-01T16:40:41.653 回答