gpt4 book ai didi

c# - EWS - 访问共享日历项目/约会

转载 作者:行者123 更新时间:2023-11-30 20:33:44 26 4
gpt4 key购买 nike

我正在尝试获取共享日历的所有项目(我已关注 Glen Scales 的 EWS - Access All Shared Calendars),但它仅在“共享日历”(法语中的“Calendriers partagés”,我可以也找不到“Common Views”是否应该本地化,我不这么认为)。

一位同事创建了一个包含一些约会的日历,与我共享并授予我最大的测试权限(所有权)。

如何访问此共享日历中的项目/约会(在 C#/PowerShell 中)?

更多信息:推荐使用Folder.Bind,但是调用会产生异常:

        ExchangeService service = new ExchangeService(ExchangeVersion.ExchangeVersion);
service.Credentials = new WebCredentials("login", "****");
service.Url = new Uri("https://.../ews/exchange.asmx");

try {
FolderId cfolderid = new FolderId(WellKnownFolderName.Calendar, "coworker@domain.com");
Folder TargetFolder = Folder.Bind(service, cfolderid);

Console.WriteLine("target folder = " + TargetFolder);
} catch (Exception ex){
Console.WriteLine(ex.ToString());
}

Microsoft.Exchange.WebServices.Data.ServiceResponseException: Le dossier spécifié est introuvable dans la banque d'informations.
à Microsoft.Exchange.WebServices.Data.ServiceResponse.InternalThrowIfNecessary()
à Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
à Microsoft.Exchange.WebServices.Data.ExchangeService.BindToFolder(FolderId folderId, PropertySet propertySet)
à Microsoft.Exchange.WebServices.Data.ExchangeService.BindToFolder[TFolder](FolderId folderId, PropertySet propertySet)
à Microsoft.Exchange.WebServices.Data.Folder.Bind(ExchangeService service, FolderId id)
à ConsoleApplication.Program.Main(String[] args)

附录:我重新开始使用 Glen 的代码,痕迹显示为注释。 WlinkAddressBookEIDA 为空。

 static Dictionary<string, Folder> GetSharedCalendarFoldersA(ExchangeService service, String mbMailboxname)
{
Dictionary<String, Folder> rtList = new System.Collections.Generic.Dictionary<string, Folder>();

FolderId rfRootFolderid = new FolderId(WellKnownFolderName.Root, mbMailboxname);
FolderView fvFolderView = new FolderView(1000);
SearchFilter sfSearchFilter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "Common Views");
FindFoldersResults ffoldres = service.FindFolders(rfRootFolderid, sfSearchFilter, fvFolderView);
if (ffoldres.Folders.Count == 1)
{

PropertySet psPropset = new PropertySet(BasePropertySet.FirstClassProperties);
ExtendedPropertyDefinition PidTagWlinkAddressBookEID = new ExtendedPropertyDefinition(0x6854, MapiPropertyType.Binary);
ExtendedPropertyDefinition PidTagWlinkFolderType = new ExtendedPropertyDefinition(0x684F, MapiPropertyType.Binary);
ExtendedPropertyDefinition PidTagWlinkGroupName = new ExtendedPropertyDefinition(0x6851, MapiPropertyType.String);

psPropset.Add(PidTagWlinkAddressBookEID);
psPropset.Add(PidTagWlinkFolderType);
ItemView iv = new ItemView(1000);
iv.PropertySet = psPropset;
iv.Traversal = ItemTraversal.Associated;

SearchFilter cntSearch = new SearchFilter.IsEqualTo(PidTagWlinkGroupName, "Calendriers partagés"); // localized
FindItemsResults<Item> fiResults = ffoldres.Folders[0].FindItems(cntSearch, iv);
Console.WriteLine("fiResults TotalCount = " + fiResults.TotalCount) ; // OK -> 1
foreach (Item itItem in fiResults.Items)
{
Console.WriteLine("itItem Subject = " + itItem.Subject); // OK, my coworker shared calendar
Console.WriteLine("itItem Id = " + itItem.Id); // Id but not the one expected!

object WlinkAddressBookEIDA = null;
itItem.TryGetProperty(PidTagWlinkAddressBookEID, out WlinkAddressBookEIDA);
Console.WriteLine("WlinkAddressBookEIDA = " + WlinkAddressBookEIDA + " is null ? " + (WlinkAddressBookEIDA == null)); // KO -> WlinkAddressBookEIDA = is null ? True

try{[...]

最佳答案

I can't find if "Common Views" should is localized either, I don't think so)

不需要,您可以使用 EWSEditor 浏览 Non_IPM 子文件夹,它会告诉您任何一种方式

A coworker created a calendar with a few appointments, shared it with me and gave me maximum permissions (ownership) for testing. How do you access the Items/Appointments within this shared calendar (in C#/PowerShell)?

如果您知道共享日历的人的电子邮件地址,则只需使用邮箱的 FolderId 重载并直接绑定(bind)到它,例如

        FolderId cfolderid = new FolderId(WellKnownFolderName.Calendar, "Mailbox@domain.com");
Folder TargetFolder = Folder.Bind(service, cfolderid);

关于c# - EWS - 访问共享日历项目/约会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39920641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com