我从Graph API获得不完整的输出

时间:2019-04-22 11:36:14

标签: python microsoft-graph microsoft-teams microsoft-graph-teams

我正在编写Teams-Slack集成。关键是要在MS团队中定义我们的班次,并根据谁在班次上更改某些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混杂 List item

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

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

enter image description here

  1. 然后我使用此承载访问令牌来拉动移位。

以下是我的问题/疑问:

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

1 个答案:

答案 0 :(得分:1)

这只是您第三个问题的答案。我看看是否可以找到对前两个答案都有答案的人。

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

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