2017-09-01 35 views
0

我正在使用使用Dropbox Core SDK v3.0.3的Android應用程序。 嘗試與其他成員共享文件夾時,我不斷收到錯誤。代碼是以指定的名稱創建新的共享文件夾,但不添加任何成員。使用Dropbox API共享文件夾時出現模式不匹配錯誤

這是我的代碼:

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) at com.dbapp.ashworth.adminapp.FilesActivity $ 3 $ 1.doInBackground(FilesActivity.java:126) at com.dbapp.ashworth.adminapp.FilesActivity $ 3 $ 1.doInBackground(FilesActivity.jav android.os.AsyncTask $ 2.call(AsyncTask.java:295) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1113) 在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:588) 在java.lang.Thread.run(Thread.java:818)

燦任何人請告訴我我在這裏做錯了什麼?

回答

1

錯誤消息指示您傳遞給addFolderMembersharedFolderId參數值似乎不是有效的共享文件夾ID。

您正在傳遞整個SharedFolderMetadata(作爲字符串)。而應該只得到共享文件夾ID是這樣的:調用shareFolder

sfl.getCompleteValue().getSharedFolderId();

順便說一句,你不能保證立刻得到完整的信息。你應該使用ShareFolderLaunch.isComplete/ShareFolderLaunch.isAsyncJobId來檢查你回來的東西。有更多的信息在shareFolder documentation

+0

是否有可能以編程方式接受'共享文件夾'邀請(添加到Dropbox)? – Dreamist

+0

是的,使用['mountFolder'](https://dropbox.github.io/dropbox-sdk-java/api-docs/v3.0.x/com/dropbox/core/v2/sharing/DbxUserSharingRequests.html# mountFolder-java.lang.String-)在收件人的帳戶上。 – Greg

+0

對不起再次提問。如何獲得'sharedFolderId'? 'mountFolder'函數需要'sharedFolderId'來掛載一個文件夾。是否有必要知道文件夾路徑? 你能告訴我'FolderMetadata.newBuilder(name,id)'的兩個參數是什麼? – Dreamist

相關問題