【问题标题】:Microsoft Graph API Posts work in graph explorer 403 forbidden in postmanMicrosoft Graph API Posts 在图资源管理器中工作 403 在邮递员中被禁止
【发布时间】:2019-12-12 22:21:13
【问题描述】:

我正在研究将在 MS Teams 频道中创建新消息的内容。我们为此目的创建了一个用户帐户,并且它的许可是正确的。在邮递员中进行测试时,我在发布时不断收到 403 错误,而所有 Get 请求都正常工作。以该服务用户身份登录时,Graph Explorer 中的帖子也可以正常工作。

发布到https://graph.microsoft.com/beta/teams/{{teamid}}/channels/{{channelid}}/messages/

身体

{
  "messageType": "message",
  "subject": "test",
  "importance": "normal",
  "body": {
    "contentType": "text",
    "content": "testing with svc account"
  }
}

在图形资源管理器上返回 201,消息显示在 Teams 中。

当我使用邮递员时,我首先获得了一个访问令牌,尝试获取相同的 uri 并获得良好的响应。所以令牌必须工作,对吧?

然后尝试发布并获得 403。

相同的用户帐户。

我错过了什么?

【问题讨论】:

    标签: post http-status-code-403 microsoft-graph-teams


    【解决方案1】:

    您需要提供身份验证。

    MSDN 实际上有一个关于使用 postman 和 Graph API here 的页面。

    此外,要使用 Graph API,您需要创建 Application registration,根据您使用的 API 和登录方式,您可能需要让租户同意您的应用程序权限。

    【讨论】:

    • 我会再次仔细检查所有这些,但在包括让应用程序批准我的 MS 之前,我已经完成了所有这些步骤。我将再次发布我的发现。
    • 我已经仔细检查了权限,据我所知,我在那里设置了正确的设置。该应用程序已注册并获得管理员批准。它还被 MS 批准用于访问图形 api。我正在尝试对服务帐户使用委派权限。服务帐户可以访问 Teams,并且能够通过 Teams Web 应用程序和 MS Graph 资源管理器发布没有问题的消息。该应用程序具有 ChannelMessage.Read.All、ChannelMessage.Send、Group.Read.All、TeamsActivity.Read、TeamsActivity.Send(以及其他可能适用或不适用的)。
    • 您是否在身份验证中使用“graph.microsoft.com/.default”范围?如果您是,那么只需确保所有 API 都正确同意“委托”类型。您应该能够在租户 azure 门户上的企业应用程序列表中检查它们,以便在管理员同意页面列为委托的应用注册。
    • 另一个选项是您可以在身份验证“范围”而不是“graph.microsoft.com/.default”范围内专门请求特定的权限列表。如果您没有权限,那么它会提示您征得管理员同意(就像图表浏览器在您要求特定权限时所做的那样)。
    • 感谢您的帮助。原来我们缺少 Group.ReadWrite.All Delegated 权限。只有应用程序级别的权限集。
    猜你喜欢
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    相关资源
    最近更新 更多