为啥 BotUserData 在我的 Bot Framework 机器人中不能持久化和可检索?
Posted
技术标签:
【中文标题】为啥 BotUserData 在我的 Bot Framework 机器人中不能持久化和可检索?【英文标题】:Why isn't BotUserData persisting and retrievable in my Bot Framework bot?为什么 BotUserData 在我的 Bot Framework 机器人中不能持久化和可检索? 【发布时间】:2016-06-23 16:14:32 【问题描述】:我正在使用带有用户 ID 的虚拟消息为特定用户设置 BotUserData,以便机器人可以通过相同的方法在其他地方访问它。
例子:
message.From.Id = someUserId;
message.SetBotUserData("someObject", someObject);
后来, 当另一个用户与机器人交互时,我执行
message.From.Id = someUserId
someObject = message.GetBotUserData<objectType>("someObject")
但是 someObject 返回为 NULL
请注意,这两个 sn-ps 是在不同的频道、对话上执行的
我是不是用错了?
【问题讨论】:
您是否要为其他用户获取数据?那是行不通的。 有没有其他方法可以在用户之间传递数据? (没有他们在同一个对话中) @stuartd 我应该澄清一下 - 我正在尝试让不同渠道上的两个用户使用机器人作为中介相互交谈。所以我基本上是使用上述方法传递他们的频道帐户 【参考方案1】:每个频道的 userId 不同(即 Skype / Slack 使用不同的命名空间)。 BotFramework 目前不提供在渠道之间链接帐户的方法。您可以创建一个允许用户链接帐户的用户界面(例如,通过在一个通道中生成令牌并让用户将其键入另一个通道)。
<SLACK-USER> Get Link code
<SLACK-BOT> Link Code: FSE1-SDF2
<SKYPE-USER> Link account FSE1-SDF2
<SKYPE-BOT> User linked
然后,您需要创建自己的数据存储,您可以使用您提供的令牌访问该数据存储。
【讨论】:
感谢您的回复。我想过类似的解决方案。 我的问题是为了解决***.com/questions/37899111/… 中提出的更大的问题,您能否看看如何解决它?以上是关于为啥 BotUserData 在我的 Bot Framework 机器人中不能持久化和可检索?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 Discord Bot 在 heroku 中不断崩溃?
ReferenceError:未定义“bot”(Eris)-在我的命令中