Создайте папку через IBM sbt и поделитесь ею с конкретным пользователем: каков правильный формат идентификатора пользователя?

Я пытаюсь создать папку и поделиться ею с конкретным пользователем, используя SBT в автономном консольном приложении Java (JDK 7).

Я начал с образца FileServiceApp в sbt/samples и изменил его с помощью следующего кода:

...
fsa = new FileServiceApp(url, user, password);
FileService fileService = fsa.getFileService();
File newFolder = fileService.createFolder(newFolderName, "description", shareWith);

shareWith — это строка, которая должна содержать 3 значения, разделенных запятыми: id, (человек/сообщество/группа), (читатель/участник/владелец), как описано в:

http://infolib.lotus.com/resources/social_business_toolkit/javadoc/com/ibm/sbt/services/client/connections/files/FileService.html#createFolder%28java.lang.String,%20java.lang.String,%20java.lang.String%29

обновление: я только что загрузил SBT 1.1.0, и createFolder больше не принимает параметр shareWith.

Но я продолжаю получать ошибку «Не найдено» (если shareWith не содержит этих 3 элементов, ошибка превращается в «Неверный запрос»).

отредактировано: вызов createFolder без третьего параметра просто работает, но папка, конечно, не является общей.

Я получаю такое же поведение, если попробую следующее (также и с sbt 1.1.0):

File newFolder = fileService.createFolder(newFolderName, "description");
Map<String, String> folderParameters = new HashMap<String, String>();
folderParameters.put("shareWith", userID);
folderParameters.put("sharePermission", "View");
fileService.updateFileMetadata(newFolder, folderParameters);

Идентификатор пользователя должен быть правильным как минимум для Smartcloud (формат: 1f......-b...-4...-b...-f............2 для теплицы, 2......1 для Smartcloud). Я проверил это с помощью ProfileService.getProfile(id) для Smartcloud.

Код был выполнен для учетной записи оранжереи и учетной записи Collabserv с использованием BasicEndpoint в обоих случаях (SmartCloudEndpoint для Smartcloud).

Мои вопросы:

  1. недоступна ли «общая папка» в SmartCloud / Greenhouse, и в этом случае доступна ли она для автономного экземпляра Connections?
  2. я что-то пропустил? (Я помещаю банки только в lib/ext)

person Stefano Meneghello    schedule 10.10.2014    source источник
comment
хорошо, если вам нужно предоставить общий доступ к папке определенному идентификатору пользователя и использовать SBT 1.0.3, используйте термин «пользователь» в shareWith, а не «человек». Что-то вроде: ${user_id},пользователь,читатель   -  person Stefano Meneghello    schedule 28.10.2014
comment
${user_id} — это макрос. Вы также можете использовать электронную почту или, если система ограничивает использование электронной почты, вы можете использовать GUID. Вы можете получить GUID для человека из службы профилей.   -  person Paul Bastide    schedule 30.10.2014
comment
Спасибо за ваш комментарий: на самом деле я использовал пользовательский GUID, и, наконец, это сработало. Я попробую с электронной почтой, чтобы увидеть, работает ли это для меня тоже. Я думаю, что проблема была в использовании GUID, человек, читатель (неправильно) вместо GUID, пользователь, читатель (правильно).   -  person Stefano Meneghello    schedule 30.10.2014


Ответы (1)


Обнаружено, что правильный формат для третьего параметра FileService.createFolder был

GUID + ",user,reader"

а не GUID, человек, читатель. Где GUID — это GUID пользователя, предложенный Полом (еще не пробовал с электронной почтой пользователя).

person Stefano Meneghello    schedule 30.10.2014