我正在基于https://setza-projects.atlassian.net/wiki/spaces/RSD/pages/44007659/IBM+Domino的XPage Rest服务中编写Java代码,private JsonObject createIntanceAppointment(ResourceDefinition rd, Database reDatabase, Date dtStart, Date dtEnd, String subject) throws NotesException {
Session session = reDatabase.getParent();
Name nnOrganizier = session.createName(session.getEffectiveUserName());
Name nnREsource = session.createName(rd.getFullName());
DateTime dt_startDateUTC = session.createDateTime(dtStart);
DateTime dt_endDateUTC = session.createDateTime(dtEnd);
Document doc = reDatabase.createDocument();
doc.replaceItemValue("form", "Reservation");
doc.replaceItemValue("Purpose", subject);
doc.replaceItemValue("ReservedFor", nnOrganizier.getCanonical());
doc.replaceItemValue("ResourceName", nnREsource.getAbbreviated());
doc.replaceItemValue("ResNameFormat", nnREsource.getAbbreviated());
是一个用Java编写的REST服务,用于处理资源预定数据库。但是它当前的工作方式,它只为当前会话用户创建预留:
NotesFactory.createSession("", "user", "password");
我正在与Domino进行非常类似的集成,虽然我更愿意为个人用户创建预订(他们在触摸屏上的房间预订应用程序中提供他们的用户名和密码)。我可以在我的REST客户端中作为用户进行身份验证,但如果我正确理解了RoomZ api的安装要求,那么'api管理用户'需要专门签名到数据库,因此我需要为每个用户执行此操作在Domino中可以进行预订。
我尝试使用Cannot create a session from an agent
,但这不起作用,它给username
错误如果我不能创建另一个会话,有什么方法我可以验证传递给有效负载中的API的password
和qazxswpoi是否正确(以验证用户是否可以登录)?然后我可以为这个用户设置组织者/保留。
此外,有没有办法让这些预订也出现在组织者的笔记日历中?目前,他们已经在预订数据库中成功创建了所有内容,但组织者并不知道他们,尽管他已被分配到预订中。
您不需要为每个用户创建会话。重要的是nnOrganizer = session.createName(“”)应该包含用户。您可能还需要设置其他字段,如主席或预订。
如果您想在组织者日历中包含一些条目,请向他们发送适当的邀请或在其邮件文件中创建日历条目。