具有基本授权的Office 365 REST API

问题描述:

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

我在我的帐户中的三个日历:

  1. [email protected](自己的日历)
  2. [email protected](共享日历)
  3. [email protected](共享日历)

使用以下终点我是能够得到基本的使用授权事件:

https://outlook.office365.com/ews/odata/Users('[email protected]')/活动

奇怪的部分是过去两天我无法使用相同的终点获取[email protected][email protected]的事件。当我尝试访问事件时,出现以下错误:

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

但是我仍然可以访问[email protected]使用相同的事件端点和基本认证。

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

{ “值”:[{ “错误”:{ “代码”: “ErrorInternalServerError”, “消息”: “未设置为一个对象的实例对象引用。”}}

但我可以成功与日历端点通话

我想知道是否有人曾经看到过这个错误。任何帮助/建议非常感谢。

建议不要使用基本身份验证,并且不支持生产使用。现在基本就是为了简化对API的探索,但将在未来某个时候停用。

就这么说,你说你在使用OAuth2访问自己的日历时遇到了错误,是吗?这听起来像是一个间歇性问题,但没有足够的信息来确切知道发生了什么。如果您仍然看到它,那么add instrumentation headers对您的请求(User-Agent,client-request-id,return-client-request-id)会很好,并获得请求响应的网络跟踪。

+0

嗨杰森,谢谢你的回应。我会尝试添加更多的头文件来检查请求响应。我使用基本身份验证来测试我的代码。 – Naveen

除了杰森的评论,请使用我们生产的终点,而不是https://outlook.office.com/api/v1.0我们的老预览端点https://outlook.office365.com/ews/odata/的看到这个blog post了解更多详情。

+0

嗨Venkat,谢谢你的回应。我会将其更改为生产网址。我还有一个问题 - 你知道何时使用Oauth2支持访问共享日历吗?我找不到任何关于此的信息。 – Naveen

+0

还没有。我们仍在努力增加支持,但没有ETA。 –

这让我很困惑。网络上的所有内容都将指向您使用Office 365 API,但相信我,这不是您想要做的事情。您将需要使用Exchange API。 Office 365只是一台Exchange服务器,因此您可以使用与自动化任何Exchange服务器相同的方式自动执行该服务器。这里有示例代码。这很简单。

Consume Office 365 REST API Without UI

办公室365 API仅仅是一个基于建筑物UI应用程序,允许用户输入他们的Office 365凭据,并允许应用代表他们工作的工具集。