0

我正在尝试使用 RESTapi 在 Office 365 帐户中获取个人日历和共享日历。由于目前 Oauth2 不支持访问共享日历,我正在使用基本授权测试我的代码。

我的帐户中有三个日历:

  1. user1@domain.com(自己的日历)
  2. user2@domain.com(共享日历)
  3. user3@domain.com(共享日历)

使用以下端点,我能够使用基本授权获取事件:

https://outlook.office365.com/ews/odata/Users ('user1@domain.com')/Events

奇怪的是过去两天我无法使用相同的端点获取 user1@domain.com 和 user2@domain.com 的事件。尝试访问事件时出现以下错误:

{"@odata.context":" https://outlook.office365.com/ews/odata/ $metadata#Users('user1@domain.com')/Events","value":[{"error": {"code":"ErrorInternalServerError","message":"对象引用未设置为对象的实例。"}}

但我仍然可以使用相同的端点和基本身份验证访问 user3@domain.com 的事件。

我还尝试使用 oauth2 访问自己的日历。我收到类似的错误

{"value":[{"error":{"code":"ErrorInternalServerError","message":"对象引用未设置为对象的实例。"}}

但我可以成功地与日历端点交谈

我想知道是否有人以前见过这个错误。非常感谢任何帮助/建议。

4

3 回答 3

2

不建议使用基本身份验证,也不支持生产使用。Basic 目前是为了简化对 API 的探索,但在未来的某个时候将被停用。

话虽如此,您说当您使用 OAuth2 访问自己的日历时遇到错误,对吗?这听起来可能是一个间歇性问题,但没有足够的信息来确切地知道发生了什么。如果您仍然看到它,最好将检测标头添加到您的请求 ( User-Agent, client-request-id, return-client-request-id) 并获取请求响应的网络跟踪。

于 2015-09-14T12:54:19.523 回答
1

除了 Jason 的评论,请使用我们的生产端点https://outlook.office.com/api/v1.0而不是我们的旧预览端点https://outlook.office365.com/ews/odata/ 请参阅此博客文章更多细节。

于 2015-09-14T15:37:04.700 回答
0

这也让我很困惑。Web 上的所有内容都会指向您使用 Office 365 API,但相信我,这不是您想要做的。您将需要使用 Exchange API。Office 365 只是一个 Exchange 服务器,因此您可以像自动化任何 Exchange 服务器一样自动化它。这里有示例代码。这很简单。

使用没有 UI 的 Office 365 REST API

Office 365 API 只是一组用于构建基于 UI 的应用程序的工具,允许用户输入他们的 Office 365 凭据并允许应用程序代表他们工作。

于 2016-09-01T03:47:30.493 回答