EWS API - 如果与 FolderPermissionLevel.FreeBusyTimeAndSubjectAndLocation 共享日历,则无法在商店中找到指定的文件夹
EWS API - The specified folder could not be found in the store if share Calendar with FolderPermissionLevel.FreeBusyTimeAndSubjectAndLocation
我正在尝试使用 EWS 自动化下一个场景 API:
- 用户 1 与权限级别为 'FreeBusyTimeAndSubjectAndLocation'
的用户 2 共享他的日历
- 用户 1 在他的日历中创建了一个活动
- user2 尝试获取有关 user1 事件的信息
设置权限的方法
public void iWantFolderPermission(String email) throws Exception {
PropertySet propSet = new PropertySet(BasePropertySet.IdOnly, FolderSchema.Permissions);
// Specify the SMTP address of the new user and the folder permissions level.
FolderPermission fldperm = new FolderPermission(email, FolderPermissionLevel.FreeBusyTimeAndSubjectAndLocation);
// Bind to the folder and get the current permissions.
// This call results in a GetFolder call to EWS.
Folder sentItemsFolder = Folder.bind(service, WellKnownFolderName.Calendar, propSet);
// Add the permissions for the new user to the Sent Items DACL.
sentItemsFolder.getPermissions().add(fldperm);
// This call results in a UpdateFolder call to EWS.
sentItemsFolder.update();
}
但是当我尝试从共享日历中获取事件时出现错误 - microsoft.exchange.webservices.data.core.exception.service.remote.ServiceResponseException: The specified folder could not be found in the store.
如果我设置 FolderPermissionLevel.Reviewer
权限,那么一切正常。
那么为什么共享日历无法使用权限级别 FreeBusyTimeAndSubjectAndLocation
访问?
FreeBusyTimeAndSubjectAndLocation 仅允许您在使用 GetUserAvailiblity 操作时访问有限的信息子集 https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/getuseravailability-operation 然后,约会详细信息将在 CalendarEventArray 中返回。要能够直接访问文件夹项目,您至少需要拥有审阅者权限。
我正在尝试使用 EWS 自动化下一个场景 API:
- 用户 1 与权限级别为 'FreeBusyTimeAndSubjectAndLocation' 的用户 2 共享他的日历
- 用户 1 在他的日历中创建了一个活动
- user2 尝试获取有关 user1 事件的信息
设置权限的方法
public void iWantFolderPermission(String email) throws Exception {
PropertySet propSet = new PropertySet(BasePropertySet.IdOnly, FolderSchema.Permissions);
// Specify the SMTP address of the new user and the folder permissions level.
FolderPermission fldperm = new FolderPermission(email, FolderPermissionLevel.FreeBusyTimeAndSubjectAndLocation);
// Bind to the folder and get the current permissions.
// This call results in a GetFolder call to EWS.
Folder sentItemsFolder = Folder.bind(service, WellKnownFolderName.Calendar, propSet);
// Add the permissions for the new user to the Sent Items DACL.
sentItemsFolder.getPermissions().add(fldperm);
// This call results in a UpdateFolder call to EWS.
sentItemsFolder.update();
}
但是当我尝试从共享日历中获取事件时出现错误 - microsoft.exchange.webservices.data.core.exception.service.remote.ServiceResponseException: The specified folder could not be found in the store.
如果我设置 FolderPermissionLevel.Reviewer
权限,那么一切正常。
那么为什么共享日历无法使用权限级别 FreeBusyTimeAndSubjectAndLocation
访问?
FreeBusyTimeAndSubjectAndLocation 仅允许您在使用 GetUserAvailiblity 操作时访问有限的信息子集 https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/getuseravailability-operation 然后,约会详细信息将在 CalendarEventArray 中返回。要能够直接访问文件夹项目,您至少需要拥有审阅者权限。