具有基本授权的Office 365 REST API

时间:2015-09-14 04:30:19

标签: office365 outlook-restapi office365api office365-restapi

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

我的帐户中有三个日历:

  1. user1@domain.com(自己的日历)
  2. user2@domain.com(共享日历)
  3. user3@domain.com(共享日历)
  4. 使用以下终点我能够使用基本授权获取事件:

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

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

    {" @ odata.context":" https://outlook.office365.com/ews/odata/ $元数据#用户(' user1@domain.com')/活动",& #34;值":[{"错误" {"代码":" ErrorInternalServerError""消息":&#34 ;对象引用未设置为对象的实例。"}}

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

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

    {"值":[{"错误" {"代码":" ErrorInternalServerError""消息&#34 ;:"对象引用未设置为对象的实例。"}}

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

    交谈

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

In addition to Jason's comments, please use our production endpoint https://outlook.office.com/api/v1.0 instead of our old preview endpoint https://outlook.office365.com/ews/odata/ See this blog post for more details.

答案 2 :(得分:0)

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

Consume Office 365 REST API Without UI

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