天道酬勤,学无止境

How to read calendars which are shared by others in Office 365 REST API

问题

https://outlook.office.com/api/v1.0/Users/me/calendars

我用这个来获取我所有的日历。 除了其他人与我共享的日历外,我拥有所有日历。 我只想看这些日历。 我的问题是:Office 365 Rest Api 是否支持我的方案 - 阅读他人与我共享的日历? 如何?

回答1

No it doesn't. Right now the API only supports accessing your data, it doesn't support accessing other folks, even if they've given you access. This is a feature we are looking at adding, but I don't have a timeline to share.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • How to read calendars which are shared by others in Office 365 REST API
    https://outlook.office.com/api/v1.0/Users/me/calendars I used this one to get all my calendars. I've got all calendars except calendars which are shared by others with me. I just want to read these calendars. My question is: Does Office 365 Rest Api support my scenario - read calendars shared by others with me? How?
  • 访问共享日历(例如通过 Office 365 REST API 访问会议室)(Access a shared calendar (such as a meeting room via Office 365 REST API))
    问题 我正在使用 Office 365 REST api 访问我帐户的日历。 我想访问我的帐户有权访问的所有日历,特别是出现在我的 Office 365 界面的“其他日历”部分中的会议室日历。 现在,如果我查询“https://outlook.office365.com/api/v1.0/me/calendars”端点,我只会得到我拥有的日历,而不是会议室日历。 有关如何获取它们的任何线索(通过 Office 365 REST API)? 回答1 以用户身份登录时,REST API 不支持访问其他用户的日历。 您可以使用客户端凭据模型授予应用程序访问组织中所有日历的权限,并以这种方式访问​​它们。 回答2 通过使用以下端点,我已经能够执行我认为您要求的操作(使用 Office 365 API 从已与 Outlook 日历共享的日历中获取事件): .../api/v2.0/Users('PRIMARY_USER_ID')/Calendars('SHARED_CALENDAR_ID')/Events 我不确定此端点是否能让您访问您拥有部分访问权限的端点,但您应该能够从直接与您的 Outlook/office 365 帐户共享的任何日历中获取事件/信息。 当您第一次使用 Outlook 帐户登录并通过 Microsoft 的身份验证过程时,PRIMARY_USER_ID
  • 如何从 Office REST API 访问共享日历?(How to access shared calendars from Office REST API?)
    问题 这个问题已经被问过好几次了,根据这样的答案,似乎 API 直到最近才支持这个,因为这里提到有允许访问共享日历的新范围。 但它仍然不起作用。 我在两个平台上对此进行了测试:Azure 和 Microsoft Graph Azure 广告应用 我在 Azure AD 中的应用程序具有所有必需的权限: 我调用 Office API v.1.0 为: 授权网址: https://login.microsoftonline.com/common/oauth2/authorize?client_id=%1$s&redirect_uri=%2$s&response_type=code 令牌 URL: https://login.microsoftonline.com/common/oauth2/token : https://login.microsoftonline.com/common/oauth2/token 日历 URL: https://outlook.office.com/api/v1.0/Me/Calendars : https://outlook.office.com/api/v1.0/Me/Calendars 它只给我当前登录/授权用户创建的日历。 由于这不起作用,我尝试使用 API 的第 2 版,但得到以下结果: Additional technical
  • 使用 O365 REST API 访问共享日历(Accessing shared calendar using the O365 REST API)
    问题 我正在阅读之前提出的 Office 365 共享日历问题 现在是否可以使用 Oauth 来访问经过身份验证的用户的共享日历来进行身份验证? 基本上,我正在尝试使用“OAuth2 客户端凭据流”来实现服务,但我只想在使用 rest api 调用与特定用户共享日历时访问日历:https://outlook.office365.com/api/v1 .0/Users/"+emailId+"/calendargroups/"+"其他日历的组ID"+"/calendars/{共享日历的calendar_id}。 回答1 更新:现在支持。 有新的范围可以实现这一点。 例如,如果您之前使用过Calendar.Read ,您将使用Calendar.Read.Shared来启用共享日历的读取。
  • Outlook - Read another user's calendar
    I'm developing an Android App based on Outlook-SDK-Android. The App talks with Outlook Calendar REST API to retrieve, book and delete events (see code examples here and here). Now I need to read someone else's calendar and I've been provided an Office365 account with delegate access (author permission level) towards other users. I've registered my app using the provided account on the new portal. In my App I use the scope "https://outlook.office.com/Calendars.ReadWrite". (The scope is used in com.microsoft.aad.adal.AuthenticationContext.acquireToken() to initialize an Office REST Client for
  • Outlook-阅读其他用户的日历(Outlook - Read another user's calendar)
    问题 我正在开发基于Outlook-SDK-Android的Android应用。 该应用程序与Outlook Calendar REST API进行通讯,以检索,预订和删除事件(请参见此处和此处的代码示例)。 现在,我需要阅读其他人的日历,并且为我提供了一个Office365帐户,该帐户具有对其他用户的委托访问权限(作者权限级别)。 我已使用提供的帐户在新门户上注册了我的应用程序。 在我的应用程序中,我使用范围“ https://outlook.office.com/Calendars.ReadWrite”。 (该范围用于com.microsoft.aad.adal.AuthenticationContext.acquireToken()中,以初始化用于Android OutlookClient的Office REST客户端,这是由orc-for-android提供的共享客户端堆栈) 当我尝试读取具有委托访问权限的另一个用户的日历时,我仅收到403响应: { "error": { "code": "ErrorAccessDenied", "message": "Access is denied. Check credentials and try again." } } 有什么帮助吗? 是API的限制吗? 如果是这样,那么为什么要提供以下方法调用链? outlookClient
  • 在 Office 365 API 中访问其他用户的日历(Access to other user's calendar in Office 365 API)
    问题 我正在构建一个 WPF 应用程序,它正在对组织中的几个用户的日历进行汇总。 公司正在使用 Office 365,所以我认为 Office 365 API 将是最好的方法。 我已经设法访问我自己的日历,但我不知道如何访问我同事的日历。 是否可以? 我还需要列出 GAL,以便选择我希望将哪些用户包含在摘要中。 回答1 [更新]服务帐户支持现在可用于 REST API。 有关详细信息,请参阅使用 Office 365 邮件、日历和联系人 API(OAuth2 客户端凭据流)构建守护程序或服务应用程序。 感谢您对 Office 365 API 提出问题和感兴趣! 目前,您可以使用 Office 365 API 访问经过身份验证的用户的日历,但不能访问其他用户的日历。 授权服务帐户访问组织内或整个组织内多个用户的邮件/日历/联系人是我们的路线图,并且优先级很高,敬请期待。 同时,您可以使用 Exchange Web 服务 (EWS) 托管 API 来实现您的应用程序。 但是,通过 EWS 应用模拟,服务帐户对用户的整个邮箱具有读/写访问权限,而不仅仅是日历。 一旦我们在 Office 365 API 中添加对服务帐户的支持,您将能够使用 OAuth 并将应用程序的访问范围缩小为仅读取用户的日历。 这里有几个链接解释了 EWS 应用程序模拟的工作原理。 EWS 托管 API 下载
  • Accessing shared calendar using the O365 REST API
    I was reading question asked previously Office 365 shared calendars Is the options to access shared calendars of authenticated user using Oauth to authenticate available now ? Basically I am trying to implement a service using "OAuth2 client credential flow", but I want to access a calendar only if it is shared with a particular user using rest api call: https://outlook.office365.com/api/v1.0/Users/"+emailId+"/calendargroups/"+"group id of Other Calendars"+"/calendars/{calendar_id of shared calendar}.
  • Office 365 共享日历(Office 365 shared calendars)
    问题 我们希望(A-USER)将事件添加到另一个用户(B-USER)的共享(与我们)日历中。 在 https://outlook.office365.com/ews/odata/Me/Calendars 列表中没有共享日历 在 url 上发布一个 json 事件:https://outlook.office365.com/api/v1.0/Users('B-USER@email.bla')/events 它回复错误 我们如何将事件添加到共享日历中? 回答1 感谢您对 Office 365 REST API 的关注! 目前,我们只允许访问属于经过身份验证的用户的邮件、日历和联系人。 因此,目前不支持您更改共享日历的方案。 访问属于其他用户的资源(例如共享日历)是我们支持的路线图,但我们还没有与您分享的时间表。 同时,您可以使用我们的 Exchange Web 服务 SOAP API 来实现您的场景。 如果您使用 .NET,我们建议您使用 EWS 托管 API 进行 EWS 调用,如果您使用 Java,我们建议您使用 EWS Java API 执行相同操作。 有关如何使用 EWS 托管 API 或原始 SOAP 请求/响应在日历上创建约会的信息,请参见此处。 希望有帮助... 谢谢, 文卡特
  • 在没有 UI 的情况下使用 Office 365 REST API(Consume Office 365 REST API Without UI)
    问题 我需要将日历条目推送到客户的 Outlook 帐户。 这对于 Exchange 来说相当简单。 您只需向具有访问权限的用户进行身份验证,然后您就可以将条目推送到其他用户的帐户中。 在 Office 365 中似乎完全不同。 我尝试按照此处的说明进行操作:https://dev.outlook.com/restapi/getstarted 我创建了应用程序并获得了应用程序的客户端 ID。 但是,所有文档都围绕 oAuth。 一般来说,oAuth 是为用户需要通过浏览器窗口输入他们的凭据然后与用户确认他们愿意允许应用程序拥有哪些凭据的场景而设计的。 这与我的场景不符。 我需要能够在没有任何 UI 的情况下将日历条目推送到帐户中。 这是后端集成。 它只需要默默地完成它的工作。 我查看了这个示例应用程序:https://github.com/OfficeDev/O365-Win-Snippets 但是,这是一个前端应用程序。 当它需要进行身份验证时,它会弹出一个窗口,强制用户输入他们的凭据。 当我尝试调用入门页面中提到的 REST API 时,它返回 HTML。 这是它提到的网址: https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=&redirect_uri=http%3A%2F
  • Office365 API-管理员访问其他用户/房间的日历事件(Office365 API - Admin accessing another users/room's calendar events)
    问题 通过点击以下请求:浏览器中的https://outlook.office365.com/api/v1.0/users/room@email.com/events,我可以输入管理员用户名和密码并获取该特定房间的日历事件。 但是,当我尝试通过经过身份验证的管理员从本机应用程序发出此调用时,会收到以下响应: reason =“该调用应访问oauth令牌中指定的邮箱。”; error_category =“ invalid_grant”如何获得日历事件认证为管理员的特定房间? 回答1 目前,我们仅允许访问属于已认证用户的邮件,日历和联系人。 因此,您的管理员访问conf的情况。 目前不支持会议室日历。 访问属于其他用户的资源,例如conf。 房间日历是我们支持的路线图,但我们尚无时间表与您分享。 同时,您有两个选择。 选项#1:如果能够在服务器上运行该应用程序,则可以构建需要管理员同意但被授权访问Office 365租户中任何邮箱的服务应用程序。 您将需要使本机应用程序与服务器上运行的应用程序对话。 有关更多详细信息,请参见此博客。 选项2:您可以使用我们的Exchange Web服务SOAP API来实现您的方案。 有关此选项和相关链接的更多详细信息,请参阅Office 365共享日历。 回答2 这个小PLUG-N-COMPILE-RUN(woo-hoo!
  • 如何从 WinForms 读取收件箱 Outlook.com 邮件?(How to read inbox Outlook.com mails from WinForms?)
    问题 设想 我想开发一个使用WinForms技术用 C# 或 Vb.Net 编写的非常简单的应用程序,这将帮助我自动化一个简单的任务,包括访问我的Outlook.com帐户以阅读我从Youtube收到的电子邮件,然后提取视频网址。 问题 我的网络相关知识不太好,我在最重要的一点上试图找到完成该任务的最简单方法(我的意思是用于 .Net 或 3rd 方 API 的官方 Microsoft API 或其他能够做到这一点的方法),尝试应用所需的OAuth2 autorizathion 来访问电子邮件帐户。 我知道以下代码没有集中在正确的方向上,因为缺乏授权,但我不知道如何实现,也不知道如何阅读电子邮件,所以这就是我尝试的: string url = "https://outlook.office.com/api/v2.0/me/messages"; string result = ""; HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; try { using (WebClient wc = new WebClient()) { wc.Encoding = Encoding.UTF8; result = wc.DownloadString(url); } } catch
  • Office365 REST v1.0 API calendar does not return recurrences
    The Microsoft Office team annouced today the availability of a REST API across the Office365 suite, as well as guides for writing apps across the different app ecosystems. To evaluate the API, I simply wanted to get a listing of my events for today. The new API seems to be relatively unchanged from the preview API The basic GET is quite simple: https://outlook.office365.com/api/v1.0/me/events This gives back listing of calendar events. To get a specific day, we should be able to use OData Query Parameters. For example: https://outlook.office365.com/api/v1.0/me/events?$filter=End gt 2014-10-28
  • Consume Office 365 REST API Without UI
    I need to push calendar entries in to a client's Outlook account. This is fairly straight forward with Exchange. You just authenticate with a user that has access, and then you can push entries in to other user's accounts. It seems to be completely different in Office 365. I tried to follow the instructions here: https://dev.outlook.com/restapi/getstarted I created the app and got the app's client ID. But, all of the documentation is around oAuth. Generally speaking, oAuth is designed for scenarios when a user needs to enter their credentials in through a browser window that will then confirm
  • 使用 OutlookClient 获取用户日历(Get user calendar using OutlookClient)
    问题 我正在使用 Outlook-SDK-Android (https://github.com/OfficeDev/Outlook-SDK-Android) 与 Outlook 日历 REST API (https://msdn.microsoft.com/en-us/office/ office365/api/calendar-rest-operations)。 到目前为止,我已经能够使用以下方法在我自己的日历上获取事件: import com.microsoft.services.outlook.fetchers.OutlookClient; OutlookClient mClient; ... mClient = new OutlookClient(outlookBaseUrl, mResolver); ... mClient.getMe() .getCalendarView() .addParameter("startDateTime", startDate) .addParameter("endDateTime", endDate) .read() 这对应于“https://outlook.office.com/api/v2.0/me/calendarView?startDateTime={start_datetime}&endDateTime={end
  • Office365 REST v1.0 API 日历不返回重复(Office365 REST v1.0 API calendar does not return recurrences)
    问题 Microsoft Office 团队今天宣布在 Office365 套件中提供 REST API,以及在不同应用生态系统中编写应用的指南。 为了评估 API,我只是想获得我今天的活动列表。 新 API 似乎与预览 API 相比没有变化 基本的 GET 非常简单: https://outlook.office365.com/api/v1.0/me/events 这会返回日历事件的列表。 要获得特定日期,我们应该能够使用 OData 查询参数。 例如: https://outlook.office365.com/api/v1.0/me/events?$filter=End gt 2014-10-28 and Start lt 2014-10-29 这给出了一个更短的列表,但并不完全正确。 没有不是在该时间范围内创建的重复事件。 这似乎是预览 (EWS/OData) API 的一个已知问题: Office 365 API 定期会议并不总是返回 Office 365 API EWS 日历不扩展重复事件 上述问题中提到了一些变通方法,但有说明 API 不断变化,这些方法在 v1.0 版本中可能不起作用。 此外,这些变通办法似乎仍然不适用,这就是为什么这个问题不是重复的。 那么,如何通过 Office365 REST v1.0 API 获取今天的所有事件,包括重复事件? 回答1
  • 将 Office365 REST 日历 ID 映射到 EWS 日历项 ID(Mapping Office365 REST Calendar IDs to EWS CalendarItem IDs)
    问题 使用 Exchange 推送通知我一直在创建一个服务,该服务同步来自 Office365 用户的日历数据。 我一直在使用 Office365 日历 REST API(获取和管理日历)和 EWS API(订阅日历更改)的组合。 我注意到最近 MS 为其订阅端点引入了一个预览 API。 但是,此 API 仍处于预览模式,我想暂时避免使用它。 完成所有设置后,问题是我无法在日历事件资源 (REST) 和推送通知中返回的 EWS CalendarItem 资源之间建立关联。 CalendarItem 的ItemId和 REST 事件的Id不同。 当尝试更新我从 REST API 保存的事件时,这证明是有问题的,因为我找不到将两者关联的好方法。 任何帮助是极大的赞赏! 编辑经过进一步挖掘,我实际上发现从 REST API ( GET /calendars ) 返回的GET /calendars似乎是 EWS 层次结构中的Message项。 因此,该端点不是返回实际的文件夹 ID,而是返回属于某个名为“通用视图”的文件夹中的项目 ID。 我不确定为什么要这样设计,但 base64 编码 ID 的差异似乎非常小。 我只是仍然想不出将两者联系起来的好方法。 回答1 因此,由于通过Exchange2007版本订阅了 EWS 推送通知,我的 ID 不匹配。 Exchange2007
  • How to access shared calendars from Office REST API?
    This question has been asked several times and as per answers such as this it seems the API didn't support this then until recently as here which mentions that there are new scopes which allow accessing the shared calendars. But it still does not work. I have tested this on two platforms: Azure and Microsoft Graph Azure Ad App My application in Azure AD has all the required permissions: I make a call to Office API v.1.0 as: Authorise URL: https://login.microsoftonline.com/common/oauth2/authorize?client_id=%1$s&redirect_uri=%2$s&response_type=code Token URL: https://login.microsoftonline.com
  • 带有 Office 365 API 的日历或用户时区(Calendar or user timezone with Office 365 API)
    问题
  • Office 365 REST API - 访问会议室日历(Office 365 REST API - Access meeting rooms calendars)
    问题 使用 Office 365 API,我们希望允许用户查看会议室日历并根据他们在 Office 365 中的权限为活动保留日历。 我了解使用服务应用程序在获得管理员同意的情况下是可能的,但这对于我们的所有用例都是不可能的。 我们需要使用用户的实际权限,而不是在后台使用管理员权限绕过它们。 我还根据这个问题和那个问题了解到,使用以前的 Office 365 API 是不可能做到的。 我的问题是现在是否可以使用新的 MS Graph API 这样做,以及它的 1.0 版是否可以稳定用于生产。 如果没有,是否计划支持,何时支持? 谢谢! 回答1 不幸的是,Graph API 没有解决这个问题。 它具有与 Outlook API 相同的身份验证限制。 好消息是我们正在努力改变以实现这种情况,尽管我没有任何确定的时间表。 Graph 1.0 版应该可以稳定用于生产。 它不被视为“预览版”或“测试版”,因此您应该可以使用它。 回答2 您可以查看 FindMeetingTimes 功能,看看它是否有帮助。 它目前处于预览状态。 要查看详细信息,请使用此链接,然后将其更改为查看文章的 Beta 版(主栏右上角):https://msdn.microsoft.com/en-us/office/office365/api/calendar -rest-operations