【问题标题】:How do I continue a conversation after my token has expired?我的令牌过期后如何继续对话?
【发布时间】:2019-05-18 08:14:29
【问题描述】:

我正在尝试使用对话引用来继续与我的节点机器人服务器中的用户进行对话。我认为,这个对话会在收到的最后一个 API 令牌过期后尝试恢复。当我尝试使用我的服务 URL 调用在 botbuilder 库中的 botFrameworkAdapter.ts 中定义的 continueConversation 时(请注意,这不是在一个回合内,因此由于 API 密钥已过期,因此没有收到来自 Teams 的消息) https://smba.trafficmanager.net/uk/ 这是我存储在对话参考中的内容,我收到未经授权的错误。

在深入了解 botbuilder 库后,我将其范围缩小到 microsoftAppCredentials.js 中的 shouldSetToken 方法。问题似乎在于 https://smba.trafficmanager.net/uk/ 不是受信任的主机名,因此连接器不会尝试检索新令牌以供使用。

我可以验证将 shouldSetToken 方法更改为始终返回 true 可以解决我的问题,但是不涉及更改库的正确方法是什么?

【问题讨论】:

    标签: botframework microsoft-teams


    【解决方案1】:

    我现在通过MicrosoftAppCredentials.trustServiceUrl(serviceUrl) 设法解决了这个问题。如果有更好的方法,那就太好了。

    【讨论】:

    • @BillBliss-MSFT 感谢 Bill,我认为可以信任我在 turnContext 中收到的任何 serviceUrl,并且不可能被一些恶意 URL 欺骗?
    • 没错。 serviceUrl 来自我们为机器人对话提供支持的后端服务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    相关资源
    最近更新 更多