【问题标题】:Botframework V4: Reset Bot in MessengerBotframework V4:在 Messenger 中重置 Bot
【发布时间】:2019-01-11 08:23:43
【问题描述】:

您好,我最近将我的机器人发布到 azure 并将其部署到 Messenger 以进行测试。机器人的第一部分询问用户姓名和年龄。当用户键入“重置”时,我如何重置整个对话?就像删除保存在内存中的所有数据一样。我正在使用 C#,并将用户数据保存到内存中。

     IStorage dataStore = new MemoryStorage();          
     var conversationState = new ConversationState(dataStore);
     options.State.Add(conversationState);

【问题讨论】:

    标签: c# botframework messenger


    【解决方案1】:

    首先,我要回应@JJ_Wailes 所说的关于在生产机器人中使用MemoryStorage 提供程序的内容:不要。 ?

    也就是说,要直接回答您的问题,是的,您可以使用the DeleteAsync API 删除给定BotState(例如ConversationStateUserState 等)的所有状态。

    【讨论】:

    • 您好先生,感谢您对内存存储的建议,我现在只是在测试它。项目完成后,我会将其更改为适当的数据库存储。我认为这个答案可能有效,因为我在外面,所以现在无法测试。我会尽快测试它。谢谢。
    • 请问先生如何使用这个命令?例如,当用户键入“botReset”时。
    • 您会将BotState 子类(例如ConversationState)注入到您的IBot 中,然后,当您收到要处理的命令时,将其称为DeleteAsync 方法。跨度>
    • 先生您如何将信使位置快速回复到提示? stackoverflow.com/questions/55337406/…
    【解决方案2】:

    嗨嗨!

    内存数据存储仅用于测试。这种存储是易失的和临时的。每次重新启动机器人时都会清除数据。无需“删除”它,它会在您重新启动机器人时自行删除。话虽如此,要在 FB Messenger 频道中“重置”机器人,当您在 https://www.messenger.com 页面上时,导航到右上角的齿轮图标:

    会有一个“删除”对话的选项。单击此按钮,然后转到右侧,那里有人员列表。再次搜索您的机器人名称,机器人对话将重新开始。

    瞧!重置:

    【讨论】:

    • 您好,先生,谢谢您的回答,但我已经这样做了,我什至禁用并再次启用了 azure 中的信使频道,但这不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    相关资源
    最近更新 更多