运行Teams呼叫机器人示例未显示自适应卡片且报AADSTS700016错误
问题根因
你遇到的AADSTS700016报错本质是Bot Framework的身份认证服务无法识别你填写的Azure应用ID,和配置项错配、Azure应用注册的访问范围、权限配置缺失直接相关,自适应卡片无法展示是因为OnMembersAddedAsync方法抛出异常中断了卡片下发流程,解决身份报错后卡片会正常显示。
解决方案
- 修正Azure AD应用的账户访问范围
打开Azure门户找到对应的应用注册,在「身份验证」的「支持的帐户类型」选项中,选择任何组织目录中的帐户(任何 Azure AD 目录 - 多租户)和个人 Microsoft 帐户(例如 Skype、Xbox),不能选择仅你的企业租户可访问的配置项,否则Bot Framework公共服务目录无法检索到你的应用ID。 - 补全并授予应用权限
进入应用注册的「API权限」页,添加以下应用权限(注意不是委托权限):Calls.AccessMedia.AllCalls.Initiate.AllDirectory.Read.All
添加完成后点击「授予管理员同意」,完成租户级别的权限授权,未完成管理员同意的权限无法正常获取令牌。
- 清理配置项的无效字符
检查你的appsettings.json所有配置项,确保MicrosoftAppId、AzureAd:ClientId、Bot:AppId三个字段的值完全和Azure AD应用的Client ID一致,前后没有多余的空格、引号、转义字符,你报错日志中的应用ID携带了多余的引号,大概率是配置文件书写错误导致的。 - 修正认证端点配置
检查你项目中Azure AD认证的Authority地址,将默认的https://login.microsoftonline.com/common修改为https://login.microsoftonline.com/你的企业租户ID,避免认证请求被定向到公共租户而非你的企业租户。 - 修正Teams应用清单配置
打开Teams应用清单的webApplicationInfo配置段,确保id字段填写的是Azure AD应用的Client ID,resource字段固定为https://graph.microsoft.com,不要填成Teams App自身的ID。
所有配置修改完成后,删除Teams中已经安装的应用,重新生成旁加载包安装,重启本地运行的项目后重试即可。
内容的提问来源于stack exchange,提问作者MHugh
相关产品推荐
相关产品推荐

