【问题标题】:Unable to access calendars in office365 outlook API无法访问 office365 Outlook API 中的日历
【发布时间】:2016-06-03 09:32:10
【问题描述】:

构建一个 android 应用程序以将用户登录到他们的 Outlook 帐户并代表他们获取他们的日历事件。

我们按照本教程将其集成到 android 应用程序中: https://github.com/Azure-Samples/active-directory-android

我们成功收到了访问令牌。现在我们正在使用我们感兴趣的 API 调用来测试它 - https://outlook.office.com/api/v2.0/me/calendarview?startdatetime=2016-06-01T00:00:00Z&enddatetime=2016-06-02T00:00:00Z - 对于添加到同一域中的用户 - (这些已经添加到当前租户中)。在 oAuth 沙箱中进行测试时,我们收到了意外的响应。请参阅随附的屏幕截图。

我做错了什么?为什么我无法为用户调用获取日历事件 API?

【问题讨论】:

  • 我在这里的第一个猜测是用户的电子邮件未托管在 Office 365 服务器上。这些用户的邮箱是否可能位于本地 Exchange 服务器中?
  • @JasonJohnston 这些是在 portal.azure.com 本身中创建的用户。我们最终会为 Office 365 构建它,所以也许我们应该继续创建一个测试 O365 实例并为此拉取用户?
  • @JasonJohnston 感谢您提供的帮助。即使我们配置了这个 O365 实例。这样我们就可以只允许 1 个企业客户登录 Outlook,但是我们如何支持多个组织呢?
  • @JasonJohnston 我们应该解决您在stackoverflow.com/questions/29069788/… 中发布的这个答案还是在stackoverflow.com/questions/25820915/… 中的模拟和EWS
  • 目前我不建议将 EWS 用于新应用程序,除非您有令人信服的理由这样做,例如需要支持本地 Exchange 服务器。

标签: office365 azure-active-directory office365api office365-restapi


【解决方案1】:

您返回的错误是404 Not Found,这基本上意味着用户在 Office 365 或 Outlook.com 中没有邮箱。 X-CasErrorCode: DomainNotFound 标头中的附加信息表明 footaki.com 域的电子邮件不是由 O365 托管的。

从您的 cmets 看来,您正在 Azure 门户中创建用户,而无需订阅 Office 365。那些用户肯定不会工作,只是没有任何日历数据可供 API 访问!

关于多个组织:应用程序绝对可以支持多个组织。如果您在 Azure 门户中注册以获取您的客户端 ID/密码,则需要打开一个标记为 Application is multi-tenant 的切换开关。如果您在 apps.dev.microsoft.com 中注册,则默认为多租户。

【讨论】:

  • 感谢杰森的帮助。我们将设置 O365 帐户和多租户应用程序,对其进行测试并在有任何帮助时回复您:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
  • 2021-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多