我正在尝试开发一个Bot来自动向对话发送消息(某些时候的对话将是一个松散的频道或Skype群聊)我正在使用模拟器来测试我的Bot。
我打算使用后台线程来执行某些操作并将结果作为消息推送到该对话。
要发送非回复消息,我需要在消息中设置某些信息,例如“收件人”,“发件人”和“对话”属性。
当添加的成员不是僵尸程序时,我可以获得ConversationReference。删除成员后,可以删除与用户关联的ConversationReference。
我相信所有这些引用都必须以某种方式保存为状态......
我的问题是,有没有更好的方法来实现这一目标?
谢谢!
答案 0 :(得分:2)
我认为您已经知道要自动向用户发送消息,您可以Send proactive messages。当机器人从外部系统收到通知时,它适用于设置提醒时间或与用户通信的场景。
有两种类型的主动消息:ad hoc主动消息,它将消息插入到会话中而不考虑当前的会话状态;相反,基于对话框的主动消息必须在插入此消息之前识别当前状态。
我相信所有这些引用都必须以某种方式保存为状态......
是的,您是正确的,要发送主动消息,我们需要指定会话ID,该ID是从用户的消息中提取的。如果我们不指定此ID,我们需要在代码中生成新ID,以便在新的对话窗口中将消息传递给用户。要保存用户状态部分,您可以参考Manage state data。
我的问题是,有没有更好的方法来实现这一目标?
我不确定是否有更好的方法,但您的想法绝对是官方文件的建议方法。这是官方botFramework-proactiveMessages sample。