无法使用Microsoft Graph API获取管理器详细信息

时间:2018-05-07 06:00:50

标签: c# microsoft-graph

我想使用Microsoft Graph从我的基于C#的bot中获取管理器详细信息。

我可以使用此查询来获取我的个人资料:

await new HttpClient()
    .GetWithAuthAsync(token.AccessToken,
        "https://graph.microsoft.com/v1.0/me/");

但是当我尝试获取经理时,我无法得到回复:

await new HttpClient()
    .GetWithAuthAsync(token.AccessToken,
        "https://graph.microsoft.com/v1.0/users/abc@domain.com/manager");

我无法理解查询有什么问题 请帮忙。

请在下面找到访问令牌:

https://9c9ca0db.ngrok.io/api/OAuthCallback?code=AQABAAIAAADX8GCi6Js6SK82TsD2Pb7rgKFM6GqiboAOn6WZitAqMLG2xkiduiMIz1slVYvjSZeevZcHogj8vmYwZH1JfaqgX1CXsBs2l7bCn1lwhZh2bq6B4LlxeJWku8zZI5hiY2mLReHWWiuQtZp4J5JJ_RVvbe6eBfgsamlCYhRPKMAfsuRBri-mQ5nJCYmVkdYOY6aGxblY2mzZL85mwogRECROLc0PsQohR1Sw0rRTon7JvHl8Pc5-GxxFYwtClp66EWnhoy8FV5dFBSOfOS_wNcijwKkA-RXvaZ2yscOnfCOKRaEL2FAUm6MAz7StrJQD0y3a1_-g97IxdtQenMNwhkSNp6wiLQsD0DzFr3zfLuIr_07ttOy07NknTJ9OPjneWQcONKUhQvLAfy-JsW4VwgOznwEcIT8K7ML-QpGXfNB1-igjm0b5x0ucHz76FQfLHxWGW2x9tsyg14NcKfpHlIsEDmHEooIGm0RCjYMuuo6uXfMCDIAMVwzUx4ehKZRXF3oNi--I889Gjfm2DeClhDYkg_ErasBgT2LLB1sLo2bPC8_65EDRQRE7sawDeyVa4sasasZ-OaN-E41dwu6re7tJcfbphpTgS9uMkkhhyic6HIwzg1iRk8sqo0_vQ6uAMtB7LDmSny7vN_3kNWFamR9u-_vOMwSW2sRZkf8S0QxjmuDmVkrH32iKx1dsszmXmtjuUtZoLr400LjNHXEb3MWUjbLWxL3u5xassasyX1LrcXYGLF3bPiZigX_Q3-8bFAHjV3-jvHxgIFd7NLtkR4socHO7Dx99ejDCnQ_sCoyFQVhRUE8iAA&state=H4sIAAAAAAAEAG2Oyw3CMAxAred4QH7EAO_SHKKgsgLhwQR0gTQ0JuHGVpF2SpXDFlZv1cd7tDwAkY0B_7WArc4cPNVJMZ_QTN9XjH6WNcg5JspU47EdSkYW3HIVthNW1MqRfx9JCIslkNTaeYCfKxDiEc56Xh1PRFhVm7un5nVmGpQ0Xz-MgX2l2E_qgomUnK9fS7SvSLXWmhoRYK0JYzMdd2twBvnWWUE3LAAAA0&session_state=e4d12345-4013-4edb-8487-35ef1763f323

1 个答案:

答案 0 :(得分:1)

您提供的“访问令牌”不是访问令牌。这是您将用于获取访问令牌的授权码。更具体地说,这是带有查询参数的重定向URI,其中包含您要提交的class Responsibility(models.Model): name = models.CharField(max_length=50, blank=True, null = True, ) class Collaborator(models.Model): name = models.CharField(max_length=50, blank=True, null = True, ) class Card(models.Model): thing = models.CharField(max_length=50, blank=True, null = True, ) responsibilities = models.ForeignKey(Responsibility, related_name='res_cards', blank=True, ) collaborators = models.ForeignKey(Collaborator, related_name='col_cards', blank=True, )

您可能希望在OAuth 2.0和v2端点上查看at this primer I wrote。它有助于了解OAuth的工作原理以及获取code所需的各种调用。

要从其他用户(除了经过身份验证的用户之外的access_token)检索配置文件信息(包括manager),您需要以下权限范围之一:

  • user
  • User.Read.All
  • User.ReadWrite.All
  • Directory.Read.All
  • Directory.ReadWrite.All

在使用这些范围之前,您还需要获取Admin Consent

一旦您同时拥有正确的范围和管理员同意,您就可以为Directory.AccessAsUser.All的其他用户请求个人资料。