【问题标题】:Got "Resource could not be discovered.'' while asking for outlook calendar events在询问 Outlook 日历事件时出现“无法发现资源。”
【发布时间】:2022-01-03 09:29:42
【问题描述】:

我正在尝试使用 Microsoft Graph 提供的 API 在 Python 脚本中获取 Outlook 日历事件。

我使用我的个人 Outlook 帐户 (example@outlook.com) 创建了一个 Azure 帐户,之后我使用学生身份激活了该帐户。

然后我按照说明创建了一个应用程序。为了通过 API 访问我的日历,首先我必须获得一个令牌。我按照文档并使用下面的 POST 来获取令牌。 这里username 是我的 Azure 应用程序中的管理员用户名。由于我的 Outlook 帐户是 example@outlook.com,username 这里是 admin@exampleoutlookcom.onmicrosoft.com

获得令牌后,我调用了 Microsoft Graph API 来获取我的日历事件:

但不幸的是,我刚刚得到了这个错误:

我确定获取事件get_calendar_events的功能是对的。

我已经在官方文档中搜索了认证过程,但几乎所有这些都需要手动单击(重定向到micorsoft登录页面进行认证)。我只想编写一个简单的python脚本来获取我的日历事件并在控制台中打印它,我不需要任何网页来显示。

任何建议都会有所帮助。非常感谢

【问题讨论】:

  • 请先确保您的访问令牌可用于成功调用graph api。
  • 怎么做?你能详细描述一下吗?非常感谢
  • 就像这个例子一样,发送http请求,但是还需要添加Authorization作为http头。使用邮递员之类的工具。 i.stack.imgur.com/DUj2J.png

标签: python azure outlook calendar microsoft-graph-api


【解决方案1】:

这里的 python 代码没有问题。这里的问题在于 Microsoft 个人帐户。即使您可以在 Azure AD 中使用个人帐户,它仍然只是个人帐户,并且存在一些限制。

为了调用 /{user-id}/events、/calendar 或 /mailFolder 工作,用户必须在 Exchange Online 上有邮箱。

当许可证未分配给用户或邮箱时,对于组织用户,我们通常会收到此 {"error":{"code":"ResourceNotFound","message":"Resource could not be found."}} 错误没有为他们配置。

在微软个人账户中,用户没有邮箱(下面的空值是有意义的),所以调用不会工作。

似乎无法将许可证分配给访客帐户(在本例中为 Microsoft 个人帐户),因此用户帐户永远无法访问日历服务(o365 在线交换的一部分)。由于它无法检索个人 Outlook 帐户的日历信息。您可能需要改用工作或学校帐户。

谢谢, 什维塔

【讨论】:

  • 所以您的想法是我的个人帐户无法访问图形 API,但是官方演示“使用 Microsoft Graph 构建 Python Django 应用程序”(docs.microsoft.com/en-us/graph/tutorials/…)对我有用。我可以通过这个演示获取我的日历事件。不幸的是,我不了解 Flask 或 Django,所以我不知道它是如何实现的
  • 能否请您检查配置了您的个人帐户或许可证的邮箱是否已分配给用户?
  • 我认为我已授予此帐户的所有访问权限,因为它的名称以“admin”开头,这意味着它可以访问此应用程序中的所有信息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-15
  • 1970-01-01
  • 2016-09-13
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
相关资源
最近更新 更多