Javascript 如何访问Microsoft Bot Framework上的用户数据?

Javascript 如何访问Microsoft Bot Framework上的用户数据?,javascript,botframework,Javascript,Botframework,如果我是正确的,userData,privateConversationData等存储在某个远程数据库中。如何访问该数据库(例如,在测试过程中清除它)?由于未指定该数据库,我假设您使用的是C# 如果能够使用IDialogContext对象,则可以使用该对象访问这些存储 //Access private conversation data context.PrivateConversationData //Access user data context.UserData //Access c

如果我是正确的,
userData
privateConversationData
等存储在某个远程数据库中。如何访问该数据库(例如,在测试过程中清除它)?

由于未指定该数据库,我假设您使用的是C#

如果能够使用IDialogContext对象,则可以使用该对象访问这些存储

//Access private conversation data
context.PrivateConversationData

//Access user data
context.UserData

//Access conversation data
context.ConversationData

在此之后,您有一些方法可以使用。最重要的是
TryGetValue(..)
SetValue(..)
RemoveValue(..)
,,因为它没有指定,所以我假设您使用的是C

如果能够使用IDialogContext对象,则可以使用该对象访问这些存储

//Access private conversation data
context.PrivateConversationData

//Access user data
context.UserData

//Access conversation data
context.ConversationData

在此之后,您有一些方法可以使用。最重要的是
TryGetValue(..)
SetValue(..)
RemoveValue(..)
对于基本实现,“所有用户状态数据库”是不可访问的,您只能按用户执行操作(如
/deleteprofile

添加了一章,名为
如何对通过State API存储的bot数据进行版本设置?

状态服务允许您通过对话框保持进度 在对话中,以便用户可以返回到与 几天之后,机器人没有失去他们的位置但如果您更改了 bot的代码,通过stateapi存储的bot数据属性包 不会自动清除。你必须决定机器人是否 应根据新代码是否兼容清除数据 使用旧版本的数据。你可以在几分钟内完成这项工作 方式:

  • 在开发bot期间,如果要手动重置对话的对话框堆栈和状态,可以使用/deleteprofile 命令(带前导空格,因此不由 通道)以清除状态
  • 在bot的生产使用过程中,您可以对bot数据进行版本设置,以便在升级版本时清除相关数据。这 可以在节点中使用现有中间件或在C中完成# 使用IPostToBot实现
如果对话框堆栈无法正确反序列化(由于 序列化格式更改,或者因为代码也已更改 会话状态将被重置

另请参见BotBuilder Github上关于存储的内容。 这也是为了国家安全

变通办法 得益于Microsoft提供的
BotBuilder Azure
扩展,您可以为您的机器人使用自己的Azure存储

它可在github上使用,并且:

使bot开发人员能够将bot与特定Azure集成 组成部分

  • Azure表存储:允许bot开发人员将bot状态存储在他们自己的Azure存储帐户中

  • DocumentDB:允许bot开发人员在DocumentDB中存储bot状态


因此,一旦您设置了此设置,您就可以使用javascript获取数据,因为它是您自己的Azure存储。

对于基本实现,“所有用户状态数据库”是不可访问的,您只能按用户执行操作(如
/deleteprofile

添加了一章,名为
如何对通过State API存储的bot数据进行版本设置?

状态服务允许您通过对话框保持进度 在对话中,以便用户可以返回到与 几天之后,机器人没有失去他们的位置但如果您更改了 bot的代码,通过stateapi存储的bot数据属性包 不会自动清除。你必须决定机器人是否 应根据新代码是否兼容清除数据 使用旧版本的数据。你可以在几分钟内完成这项工作 方式:

  • 在开发bot期间,如果要手动重置对话的对话框堆栈和状态,可以使用/deleteprofile 命令(带前导空格,因此不由 通道)以清除状态
  • 在bot的生产使用过程中,您可以对bot数据进行版本设置,以便在升级版本时清除相关数据。这 可以在节点中使用现有中间件或在C中完成# 使用IPostToBot实现
如果对话框堆栈无法正确反序列化(由于 序列化格式更改,或者因为代码也已更改 会话状态将被重置

另请参见BotBuilder Github上关于存储的内容。 这也是为了国家安全

变通办法 得益于Microsoft提供的
BotBuilder Azure
扩展,您可以为您的机器人使用自己的Azure存储

它可在github上使用,并且:

使bot开发人员能够将bot与特定Azure集成 组成部分

  • Azure表存储:允许bot开发人员将bot状态存储在他们自己的Azure存储帐户中

  • DocumentDB:允许bot开发人员在DocumentDB中存储bot状态


所以,一旦你设置好了,你就可以用javascript获取数据,因为它是你自己的Azure存储。

你使用的是什么语言?您是要求访问数据库本身还是仅仅访问存储的值?@EzequielJadib我是要求访问数据库。语言是
javascript
你在用什么语言?您是要求访问数据库本身还是仅仅访问存储的值?@EzequielJadib我是要求访问数据库。语言是
javascript
谢谢,@Xeno-D但我没问这个问题。我需要访问整个数据库。谢谢,@Xeno-D,但这不是我要求的。我需要访问整个数据库。谢谢,@Nicolas,我的怀疑是正确的。我在最后添加了另一个链接,以获得相同的结论;)谢谢,尼古拉斯,我的怀疑是