2

我正在编写 Teams-Slack 集成。关键是要在 MS Teams 中定义我们的 Shift,并根据谁在 Shift 上更改某些 Slack 频道的描述。

无论如何,Slack 端都已完成,但我在 Teams 及其 API 方面遇到了很多问题。

首先,这是我的主要资源:https ://docs.microsoft.com/en-us/graph/api/schedule-list-shifts?view=graph-rest-beta

好的,这就是我已经完成的。

  • 我已经在 Azure 中注册了我的机器人并且我有一个 ID
  • 我已授予机器人所需的权限
  • 我找到了我们轮班的 Teams 组 ID

这就是手动完成该过程的方式:

  1. 导航到一个 URL,它将给我我的代码。我附上了一张图片,而不是一个大的 URL 混乱 项目清单

  2. 当我导航到这个 URL(不使用 Python)时,我到达一个页面,让我确认我的 O365 用户。(当 Python 尝试这样做时,它会要求完整的登录) 在此处输入图像描述

  3. 然后我使用参数 code=SOMECODEHERE 重定向到 localhost 页面
  4. 然后,我获取此代码并使用 Postman 在 POST 请求中发送它以获取我的访问令牌:

在此处输入图像描述

  1. 然后我使用这个不记名访问令牌来拉班次。

这是我的问题/问题:

  1. 当我最终得到包含所有团队成员班次的 JSON 文件时,它只显示前后 1 个月的班次。Aka 今天是 22-04-2019,我能看到的最后一个班次是 22-03-2019。
  2. JSON 也不会显示谁在轮班或待命。我的意思是,我可以看到 2019 年 2 月 20 日有一个轮班,但它不会为该轮班的成员返回任何 UID 或名称。有没有办法找到这个?
  3. 有没有办法用 python 获得“code=”值?它要求它登录(因为它要求我确认我的 O365 用户 - 参见第二张图片)。我真的需要硬编码自己的登录详细信息,以便机器人可以导航到页面吗?那是愚蠢的imo。我知道我可以阅读重定向的 URL,但我什至无法到达那里。
4

1 回答 1

1

这只是您第三个问题的答案。我会看看我是否能找到前两个答案的人。

您正在访问的 API 使用委托权限,这意味着您代表登录用户访问。当用户登录时,他们的身份会得到验证,一旦验证成功,Azure AD 返回代码,您可以交换访问令牌。因此,根据定义,没有用户登录就无法获取代码。

还有另一种权限,应用程序权限,此 API 不支持,但如果支持,将按您想要的方式工作。我也会问这个。

于 2019-04-22T15:48:04.363 回答