python - 我从 Graph API 得到不完整的输出

标签 python microsoft-graph-api microsoft-teams microsoft-graph-teams

我正在编写 Teams-Slack 集成。重点是在 MS Teams 中定义我们的类次,并根据轮类人员更改某些 Slack channel 的描述。

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

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

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

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

这是手工完成的过程:

  1. 导航到一个 URL,它将给我我的代码。我附上了一张图片而不是一个大的 URL 困惑 List item

  2. 当我导航到此 URL(不使用 Python)时,我到达一个页面,让我确认我的 O365 用户。 (当 Python 尝试这样做时,它要求完成登录) enter image description here

  3. 然后我被重定向到带有参数 code=SOMECODEHERE 的本地主机页面
  4. 然后我获取此代码并使用 Postman 在 POST 请求中发送它以获取我的访问 token :

enter image description here

  1. 然后我使用这个不记名访问 token 来拉类。

这是我的问题/问题:

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

最佳答案

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

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

还有另一种权限,即应用程序权限,此 API 不支持此权限,但如果支持,则可以按您希望的方式工作。我也会问这个。

关于python - 我从 Graph API 得到不完整的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55793759/

相关文章:

java - Microsoft Graph API Java HTTP 客户端不允许通过补丁更新

microsoft-graph-api - 我可以使用 API 在 Microsoft Teams 中创建 channel 吗?

MS Teams 中的 Jenkins 标签用户

python - 尝试获取枚举样式选择=适用于 django 但整个连音出现在下拉列表中

python - 有没有更好的方法来迭代两个列表,每次迭代从每个列表中获取一个元素?

python - Pandas :从分层数据创建字典

microsoft-graph-api - 如何使用 Microsoft Graph 或 Office 365 REST API 从 Outlook 获取所有任务?

Azure B2C - 使用 msal 获取调用 Graph API 的授权

python - 如何找到二维数组中每一行的最大值?

python - MS 团队机器人 - 创建新对话