Microsoft Teams、Graph API、向通道发送消息 InsufficientPrivileges MessageWritesBlocked-Thread 未标记为导入

问题描述 投票:0回答:1

我正在尝试以编程方式向 Teams 频道发送消息。没有什么特别或奇特的事情发生。

有效负载(JSON 编码):

    %{
      "createdDateTime" => DateTime.utc_now(),
      "from" => %{
        "user" => %{
          "id" => @user_id,
          "displayName" => @display_name,
          "userIdentityType" => "aadUser"
        }
      },
      "body" => %{
        "content" => message
      }
    }

我的请求网址:

https://graph.microsoft.com/v1.0/teams/<team_id>/channels/<channel_id>/messages

标头具有授权承载令牌,内容类型设置为 application/json

据我所知(我无法直接访问环境),我们将 api 权限设置为委托权限,而不是应用程序权限。该角色具有 ChannelMessage.Send 权限。我收到这样的回复:

  error: %{
    code: "Forbidden",
    message: "InsufficientPrivileges",
    innerError: %{
      code: "1",
      message: "MessageWritesBlocked-Thread is not marked for import",
      date: "2024-03-27T16:55:18",
      "request-id": "947c97a0-2bdb-4168-b18e-bdebf8de6c86",
      "client-request-id": "947c97a0-2bdb-4168-b18e-bdebf8de6c86"
    }
  }

访问令牌中发回的角色如下:

"roles": [
    "Chat.UpdatePolicyViolation.All",
    "Teamwork.Migrate.All",
    "Directory.ReadWrite.All",
    "Team.Create",
    "Group.ReadWrite.All",
    "Chat.ReadWrite.WhereInstalled",
    "Chat.Read.WhereInstalled",
    "Chat.Read.All",
    "Chat.ReadBasic.WhereInstalled",
    "Chat.ReadWrite.All",
    "Chat.ReadBasic.All",
    "Chat.ManageDeletion.All",
    "Chat.Create"
  ]

任何有关此错误的帮助,关于我可能缺少哪些权限/角色或其他帮助,将像往常一样受到赞赏。

microsoft-graph-api elixir microsoft-teams
1个回答
0
投票

您需要检查 API 权限并确保正确设置 Microsoft Graph API 权限 ChannelMessage.Send。要将消息发送到 Teams 频道,需要委派权限,但您可能还需要专门用于此任务的 ChannelMessage.Send

© www.soinside.com 2019 - 2024. All rights reserved.