如何通过机器人发送消息给其他用户,并回过头来与第一用户原来的谈话中不失背景?(How to send

2019-09-26 13:16发布

我想建立一个机器人,可以解决安装在用户的请求。 然而,机器人需要询问用户的经理的权限相同。 因此,这是流量:

  1. 用户的地方机器人的请求。
  2. 博特通知用户的经理批准或拒绝请求
  3. 基于从管理器,机器人的响应任一地址的请求或不和通知用户。

我可以做一个1:使用PromptDialog机器人和用户之间的1谈话,执行步骤1和3。但是,我不知道如何发送消息给其他用户批准或拒绝,并继续与第一较早的谈话用户。 我使用C#这个机器人。 我如何能做到这一点任何想法?

谢谢

Niyati

Answer 1:

使用下面的代码将消息发送到第二用户,并在所述第一用户的收件箱存储后,可以发送所存储的结果,再次使用上面的代码,所述第一用户,并按照它们的对话。

string recipientId ="123456789"; // For Example
string serviceUrl = "https://telegram.botframework.com"; // For Example

var connector = new ConnectorClient(new Uri(serviceUrl));
IMessageActivity newMessage = Activity.CreateMessageActivity();
newMessage.Type = ActivityTypes.Message;
newMessage.From = new ChannelAccount("<BotId>", "<BotName>");
newMessage.Conversation = new ConversationAccount(false, recipientId);
newMessage.Recipient = new ChannelAccount(recipientId);
newMessage.Text = "<MessageText>";
await connector.Conversations.SendToConversationAsync((Activity)newMessage);

代码来自这里 。



Answer 2:

查看该页面 ,特别是开始对话部分。



Answer 3:

你可以保持上下文堆栈为每个用户,堆栈由机器人和匹配上下文FIFO顺序发送对于收到的每条消息的每个消息的顶部推动的项目。 现在,这种情况下叠进入由用户名/用户钥标识的地图。

博特上下文是不正是这个库。 相关博客文章 。



文章来源: How to send message to another user via bot and come back to original conversation with first user without losing the context?