You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MS Teams机器人报错:获取客户端凭据令牌失败(ThrottleException)

MS Teams主动消息机器人令牌获取节流异常问题

问题背景

开发了一款可向用户发送主动消息的MS Teams机器人,采用ConnectorClient实现消息发送功能,同时配置了错误邮件通知机制,在发生异常时接收详细报错信息。近几日,针对部分用户出现如下报错:

无法通过客户端凭据获取令牌。(引发了类型为'Microsoft.Bot.Connector.Authentication.ThrottleException'的异常。)

详细报错信息

无法通过客户端凭据获取令牌。(引发了类型为'Microsoft.Bot.Connector.Authentication.ThrottleException'的异常。)
(引发了类型为'Microsoft.Bot.Connector.Authentication.ThrottleException'的异常。)
(引发了类型为'Microsoft.Bot.Connector.Authentication.ThrottleException'的异常。)
(引发了类型为'Microsoft.Bot.Connector.Authentication.ThrottleException'的异常。)
(引发了类型为'Microsoft.Bot.Connector.Authentication.ThrottleException'的异常。)
(引发了类型为'Microsoft.Bot.Connector.Authentication.ThrottleException'的异常。)
(引发了类型为'Microsoft.Bot.Connector.Authentication.ThrottleException'的异常。)
(引发了类型为'Microsoft.Bot.Connector.Authentication.ThrottleException'的异常。)
(引发了类型为'Microsoft.Bot.Connector.Authentication.ThrottleException'的异常。)
(引发了类型为'Microsoft.Bot.Connector.Authentication.ThrottleException'的异常。)
(引发了类型为'Microsoft.Bot.Connector.Authentication.ThrottleException'的异常。)

堆栈跟踪:
在 Microsoft.Bot.Connector.Authentication.Retry.Run[TResult](Func`1 task, Func`3 retryExceptionHandler)
在 Microsoft.Bot.Connector.Authentication.AdalAuthenticator.GetTokenAsync(Boolean forceRefresh)
在 Microsoft.Bot.Connector.Authentication.AdalAuthenticator.Microsoft.Bot.Connector.Authentication.IAuthenticator.GetTokenAsync(Boolean forceRefresh)
在 Microsoft.Bot.Connector.Authentication.AppCredentials.GetTokenAsync(Boolean forceRefresh)
在 Microsoft.Bot.Connector.Authentication.AppCredentials.ProcessHttpRequestAsync(HttpRequestMessage request, CancellationToken cancellationToken)
在 Microsoft.Bot.Connector.Conversations.CreateConversationWithHttpMessagesAsync(ConversationParameters parameters, Dictionary`2 customHeaders, CancellationToken cancellationToken)
在 Microsoft.Bot.Connector.ConversationsExtensions.CreateConversationAsync(IConversations operations, ConversationParameters parameters, CancellationToken cancellationToken)
在 Microsoft.BotBuilderSamples.WelcomeBotCloundStorage.sendMessage(ConnectorClient connectorClient, UserDetails user, Activity personalMessageActivity)

原因分析

ThrottleException是微软Bot Framework对令牌请求频率的限制触发的,说明机器人在短时间内向Azure AD发送了过多的令牌获取请求,超出了配额限制。

解决方案

  • 优化令牌缓存策略:确保AppCredentials的令牌缓存机制正常工作,避免重复请求令牌。检查代码中是否频繁调用GetTokenAsync(true)(强制刷新),改为使用默认的GetTokenAsync(false),仅在必要时强制刷新。
  • 调整请求频率:批量发送消息时添加请求间隔,避免短时间内集中调用CreateConversationAsync或发送消息接口。可采用批量分组、延迟发送的方式分散请求压力。
  • 调整重试逻辑:系统已内置重试机制,但多次重试仍失败说明当前频率远超限制。自定义重试策略,增加重试间隔(如指数退避),避免持续触发节流。
  • 检查应用权限配置:确认机器人应用的权限范围,移除不必要的权限以减少令牌请求量,同时可根据业务需求申请提升Azure AD的令牌配额。
  • 排查代码逻辑:检查是否存在循环发送、重复触发消息发送的逻辑(如用户状态监听的重复回调),消除不必要的令牌请求。

内容的提问来源于stack exchange,提问作者Swapnil Chowkekar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 04:52:46