无法将 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
属性 解决了这个问题。一开始不太明白为什么它会导致问题。
webApplicationInfo 部分实际上仅用于两件事:选项卡 SSO 和特定于资源的同意。您是否正在尝试实施其中任何一个?如果没有,删除它绝对是最好的选择,正如您在回答中指出的那样。
此外,我看到您输入的资源值是 Microsoft Graph Scopes,而 applicationPermissions
部分需要不同的选项列表(它们看起来有点相似,但它们不是一回事)。看这里了解更多:https://docs.microsoft.com/en-gb/microsoftteams/platform/graph-api/rsc/resource-specific-consent#resource-specific-permissions
这原本是微软的支持票。然而,他们告诉他们,如果不付费,他们不会提供开发支持。他们把我带到了 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
属性 解决了这个问题。一开始不太明白为什么它会导致问题。
webApplicationInfo 部分实际上仅用于两件事:选项卡 SSO 和特定于资源的同意。您是否正在尝试实施其中任何一个?如果没有,删除它绝对是最好的选择,正如您在回答中指出的那样。
此外,我看到您输入的资源值是 Microsoft Graph Scopes,而 applicationPermissions
部分需要不同的选项列表(它们看起来有点相似,但它们不是一回事)。看这里了解更多:https://docs.microsoft.com/en-gb/microsoftteams/platform/graph-api/rsc/resource-specific-consent#resource-specific-permissions