无法将 Teams 机器人添加到频道

Can't add Teams bot to a channel

这原本是微软的支持票。然而,他们告诉他们,如果不付费,他们不会提供开发支持。他们把我带到了 Stack Overflow,所以这里什么也没有。

我正在为 Microsoft Teams 开发机器人。我已经在 Azure Active Directory 和 Bot Framework 中注册了我的机器人。我已将我的应用程序上传到团队,没有任何错误。我的机器人目前能够向 Teams 用户发送直接消息。但是,当我尝试将我的机器人添加到 Teams 频道时,我收到无用的错误。

我在“应用程序”选项卡中单击我的应用程序下方的下拉菜单:

我点击“添加到团队”,然后select一个频道:

点击“设置机器人”按钮后,我收到以下错误消息:

我已经检查并重新检查了我的 webApplicationInfo.id 和 webApplicationInfo.applicationPermissions 无数次,但我不知道哪里出了问题。我看不出这些字段中的任何一个可能是错误的,我可以使用这些值对 Microsoft Graph 和 Bot Framework api 进行身份验证。这是我的 Teams 应用程序清单的略微编辑版本:

{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.8/MicrosoftTeams.schema.json",
  "manifestVersion": "1.8",
  "version": "1.0.15",
  "id": "<TEAMS_APP_ID>",
  "packageName": "ambition",
  "developer": {
    "name": "Ambition",
    "websiteUrl": "https://ambition.com",
    "privacyUrl": "https://ambition.com/privacy",
    "termsOfUseUrl": "https://ambition.com/pages/terms"
  },
  "icons": {
    "color": "logo_opaque_192x192.png",
    "outline": "logo_transparent_32x32.png"
  },
  "name": {
    "short": "Ambition",
    "full": ""
  },
  "description": {
    "short": "Motivate & Recognize",
    "full": "Ask Marketing"
  },
  "accentColor": "#FFFFFF",
  "permissions": [
    "identity",
    "messageTeamMembers"
  ],
  "validDomains": [
    "ambition.com"
  ],
  "bots": [
    {
      "botId": "<AZURE_ACTIVE_DIRECTORY_CLIENT_ID>",
      "scopes": [
        "team",
        "personal",
        "groupchat"
      ],
      "isNotificationOnly": true
    }
  ],
  "webApplicationInfo": {
    "id": "<AZURE_ACTIVE_DIRECTORY_CLIENT_ID>",
    "resource": "https://ambition.com",
    "applicationPermissions": [
      "Channel.ReadBasic.All",
      "ChannelMessage.Send",
      "Group.Read.All",
      "Notifications.ReadWrite.CreatedByApp",
      "Team.ReadBasic.All",
      "User.Read",
      "User.ReadBasic.All"
    ]
  }
}

真的不知道为什么会这样,但我将我的应用程序清单与通过本教程生成的清单进行了比较:https://docs.microsoft.com/en-us/microsoftteams/platform/build-your-first-app/build-bot

从我的清单中删除 webApplicationInfo 属性 解决了这个问题。一开始不太明白为什么它会导致问题。

https://docs.microsoft.com/en-us/microsoftteams/platform/resources/schema/manifest-schema#webapplicationinfo

webApplicationInfo 部分实际上仅用于两件事:选项卡 SSO 和特定于资源的同意。您是否正在尝试实施其中任何一个?如果没有,删除它绝对是最好的选择,正如您在回答中指出的那样。

此外,我看到您输入的资源值是 Microsoft Graph Scopes,而 applicationPermissions 部分需要不同的选项列表(它们看起来有点相似,但它们不是一回事)。看这里了解更多:https://docs.microsoft.com/en-gb/microsoftteams/platform/graph-api/rsc/resource-specific-consent#resource-specific-permissions