我的令牌过期后如何继续对话?
How do I continue a conversation after my token has expired?
我正在尝试使用对话引用在我的节点机器人服务器中继续与用户对话。我假设,在收到的最后一个 API 令牌过期后,将尝试恢复此对话。当我尝试调用 botbuilder 库中 botFrameworkAdapter.ts
中定义的 continueConversation
时(请注意,这不在一个回合内,因此自 API 键以来没有收到来自 Teams 的消息已过期),我的服务 URL 为 https://smba.trafficmanager.net/uk/ 这是我存储在我的对话参考中的内容,我收到未经授权的错误。
深入研究 botbuilder 库后,我将其缩小到 microsoftAppCredentials.js
中的 shouldSetToken
方法。问题似乎是 https://smba.trafficmanager.net/uk/ 不是受信任的主机名,因此连接器不会尝试检索新令牌以供使用。
我可以验证将 shouldSetToken
方法更改为始终 return true 可以解决我的问题,但是不涉及更改库的正确方法是什么?
我现在已经设法通过 MicrosoftAppCredentials.trustServiceUrl(serviceUrl)
解决了这个问题。如果有更好的方法,很高兴听到它。
我正在尝试使用对话引用在我的节点机器人服务器中继续与用户对话。我假设,在收到的最后一个 API 令牌过期后,将尝试恢复此对话。当我尝试调用 botbuilder 库中 botFrameworkAdapter.ts
中定义的 continueConversation
时(请注意,这不在一个回合内,因此自 API 键以来没有收到来自 Teams 的消息已过期),我的服务 URL 为 https://smba.trafficmanager.net/uk/ 这是我存储在我的对话参考中的内容,我收到未经授权的错误。
深入研究 botbuilder 库后,我将其缩小到 microsoftAppCredentials.js
中的 shouldSetToken
方法。问题似乎是 https://smba.trafficmanager.net/uk/ 不是受信任的主机名,因此连接器不会尝试检索新令牌以供使用。
我可以验证将 shouldSetToken
方法更改为始终 return true 可以解决我的问题,但是不涉及更改库的正确方法是什么?
我现在已经设法通过 MicrosoftAppCredentials.trustServiceUrl(serviceUrl)
解决了这个问题。如果有更好的方法,很高兴听到它。