为什么 BotUserData 不能在我的 Bot Framework 机器人中保留和检索?
Why isn't BotUserData persisting and retrievable in my Bot Framework bot?
我正在使用带有用户 ID 的虚拟消息来为特定用户设置 BotUserData,以便机器人可以通过相同的方法在其他地方访问它。
示例:
message.From.Id = someUserId;
message.SetBotUserData("someObject", someObject);
后来,
当另一个用户与机器人交互时,我执行
message.From.Id = someUserId
someObject = message.GetBotUserData<objectType>("someObject")
但是 someObject 返回为 NULL
请注意,这两个片段是在不同的渠道、对话中执行的
我是不是用错了?
每个频道的 userId 都不同(即 Skype / Slack 使用不同的命名空间)。 BotFramework 目前不提供在渠道之间 link 帐户的方法。您可以创建一个允许用户 link 帐户的用户界面(例如,通过在一个频道中生成令牌并让用户将其输入另一个频道)。
<SLACK-USER> Get Link code
<SLACK-BOT> Link Code: FSE1-SDF2
<SKYPE-USER> Link account FSE1-SDF2
<SKYPE-BOT> User linked
然后您想要创建您自己的数据存储,您可以使用您提供的令牌访问它。
我正在使用带有用户 ID 的虚拟消息来为特定用户设置 BotUserData,以便机器人可以通过相同的方法在其他地方访问它。
示例:
message.From.Id = someUserId;
message.SetBotUserData("someObject", someObject);
后来, 当另一个用户与机器人交互时,我执行
message.From.Id = someUserId
someObject = message.GetBotUserData<objectType>("someObject")
但是 someObject 返回为 NULL
请注意,这两个片段是在不同的渠道、对话中执行的
我是不是用错了?
每个频道的 userId 都不同(即 Skype / Slack 使用不同的命名空间)。 BotFramework 目前不提供在渠道之间 link 帐户的方法。您可以创建一个允许用户 link 帐户的用户界面(例如,通过在一个频道中生成令牌并让用户将其输入另一个频道)。
<SLACK-USER> Get Link code
<SLACK-BOT> Link Code: FSE1-SDF2
<SKYPE-USER> Link account FSE1-SDF2
<SKYPE-BOT> User linked
然后您想要创建您自己的数据存储,您可以使用您提供的令牌访问它。