我在 C# 中使用 microsoft framework v4 SDK 编写了一个机器人。该机器人部署在 Azure 中,并连接到网络聊天、直线和 Facebook Messenger 渠道。该机器人适用于所有人。
用户可以订阅以主动接收更新。为此,我使用存储的 ConversationReference 来发送主动消息。同样,这一切都很好,除非重新启动 bot wepApp导致:-
Exception caught : Microsoft.Bot.Schema.ErrorResponseException: Operation returned an invalid status code 'Unauthorized' for the facebook channel.
如果我从 facebook messenger 向机器人发送另一条消息,那么即使对于较旧的存储 ConversationReferences,主动消息也会再次开始工作。
最初我根据示例使用 MemoryStorage,但我将其更改为将 Azure Blob 存储用于会话状态和用户状态。这没什么区别。就好像它必须在内存中存储一个 facebook auth 令牌,所以如果应用程序重新启动,令牌就会丢失,直到用户从 messenger 发送另一条消息。
有什么办法可以解决这个问题,因为如果它无法处理机器人 webApp 重启,它会使订阅的主动更新变得毫无意义?
非常感谢