当前位置: 首页 > 知识库问答 >
问题:

如何使用EWS托管API访问共享日历

柴琦
2023-03-14

如何知道使用Exchange EWS API共享了哪个日历。

共有1个答案

林德惠
2023-03-14

您可以只指定要在folderid中访问的日历。

FolderId folderIdFromCalendar = new FolderId(WellKnownFolderName.Calendar, "sharedInbox@example.com");

然后,您可以使用FolderIdFromCalendar检索您想要的日历项目,例如:

FindItemsResults<Item> appointments = ExchangeServive.FindItems(folderIdFromCalendar, ItemView);

请记住,程序必须在共享邮箱的用户上下文中运行。

FolderId folderIdFromCalendar = new FolderId("AQMkADAwATM3ZmYAZS1kNjE0LWU1ZmQtMDACLTAwCgAuAAADJRMtiupYBUGD‌​cKdcqUrr3AEA1/sqwbrw‌​UEeFM0Mc+UBFoQAAABzk‌​m1sAAAA=");
if (folderIdFromCalendar != null)
    {
        try
        {
            ItemView cView = new ItemView(1000);
            FindItemsResults<Item> appointments = service.FindItems(folderIdFromCalendar, cView);
            int count = appointments.TotalCount; //just an example of some random action on the folder calendar
        }
        catch (ServiceResponseException ex)
        {
            Console.WriteLine("The specified calendar was not shared with you. \n" + ex);
        }
    }
    else
    {
        Console.WriteLine("The specified calendar ID could not be linked to a calendar folder.");
    }
if (folderIdFromCalendar != null)
    {
        if (folderIdFromCalendar.Mailbox.ToString().ToLower() == "your-Mailadress".ToLower())
        {
            Console.WriteLine("The folder you specified is your own");
        }
        else
        {
            try
            {
                ItemView cView = new ItemView(1000);
                FindItemsResults<Item> appointments = service.FindItems(folderIdFromCalendar, cView);
                int count = appointments.TotalCount; //just an example of some random action on the folder calendar
                Console.WriteLine("You have been given access to this mailbox. Its owner is: " + folderIdFromCalendar.Mailbox.ToString()); //if you need to know, whos mailbox you are accessing right now
            }
            catch (ServiceResponseException ex)
            {
                Console.WriteLine("The specified calendar was not shared with you. \n" + ex);
            }
        }
    }
    else
    {
        Console.WriteLine("The specified calendar ID could not be linked to a calendar folder.");
    }
FolderId folderIdFromCalendar = new FolderId("AQMkADAwATM3ZmYAZS1kNjE0LWU1ZmQtMDACLTAwCgAuAAADJRMtiupYBUGD‌​cKdcqUrr3AEA1/sqwbrw‌​UEeFM0Mc+UBFoQAAABzk‌​m1sAAAA=");
    Folder folderFromCalendar = Folder.Bind(service, folderIdFromCalendar);

    AlternateId aiAlternateid = new AlternateId(IdFormat.EwsId, folderFromCalendar.Id.UniqueId, "random@mailadress.com");
    AlternateIdBase aiResponse = service.ConvertId(aiAlternateid, IdFormat.EwsId);

    var mailbox = ((AlternateId)aiResponse).Mailbox;

    if (folderFromCalendar != null)
    {
        if (mailbox.ToString().ToLower() == "your-Mailadress".ToLower())
        {
            Console.WriteLine("The folder you specified is your own");
        }
        else
        {
            try
            {
                ItemView cView = new ItemView(1000);
                FindItemsResults<Item> appointments = service.FindItems(folderIdFromCalendar, cView);
                int count = appointments.TotalCount; //just an example of some random action on the folder calendar
                Console.WriteLine("You have been given access to this mailbox. Its owner is: " + mailbox.ToString());
            }
            catch (ServiceResponseException ex)
            {
                Console.WriteLine("The specified calendar was not shared with you. \n" + ex);
            }
        }
    }
    else
    {
        Console.WriteLine("The specified calendar ID could not be linked to a calendar folder.");
    }
 类似资料:
  • 我正在阅读以前Office 365共享日历的问题 使用Oauth进行身份验证的用户现在可以访问共享日历了吗? 基本上,我尝试使用“OAuth2客户端凭据流”来实现一个服务,但是我希望只有当日历与使用rest api调用的特定用户共享时才能访问该日历:https://outlook.office365.com/api/v1.0/Users/"电子邮件id/calendar groups/" "其他日

  • 我的合作伙伴提供了他们自己的日历服务,使用EWS管理的API来提取Office 365日历数据,以便在他们自己的日历应用程序中显示结果。 阅读Office 365中日历共享的文章时,它解释了第三方客户端为“我们不支持基于EWS的客户端的共享日历改进,因此您不会在任何使用EWS的日历应用程序(如Mac OS X)中看到您的共享日历。” -这是否意味着在Office 365中日历共享的更新完全实施后,

  • 问题内容: 我有一个网站,并且在我的本地主机上运行良好。 在Godaddy托管上上传后,我的网络出现了错误。结论是,我必须更改php.ini文件上的memory_limit,但无法在FTP管理器上找到php.ini。 我试图: 找到更改为“分类FTP”管理器的方法。 从本地创建/上传php.ini文件,但不起作用。 我的问题是:我该如何解决?我必须更改php.ini文件。有人有像我这样的经历吗?

  • 共享的托管环境常常会对目录结构以及配置文件有较多的限制。 然而,在大多数情况下,你仍可以通过少量的修改以在共享托管环境下运行 Yii 2.0。 部署一个基础应用模板 由于共享托管环境往往只有一个 webroot,如果可能,请优先使用基础项目模板( basic project template )构建你的应用程序。 参考 安装 Yii 章节在本地安装基础项目模板。 当你让应用程序在本地正常运行后,

  • 我正在使用Office 365 REST api访问我的帐户日历。我想访问我的帐户可以访问的所有日历,特别是出现在我的Office 365界面的“其他日历”部分中的会议室日历。 目前,如果我查询“https://outlook.office365.com/api/v1.0/me/calendars”终结点,则我只获取我拥有的日历,而不是会议室日历。 关于如何获取它们的任何线索(通过Office 3