首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

聊天机器人里的消息和Activity

现在假设您已经有了一个聊天机器人的项目了,使用打开你的项目之后,如下图:

这个项目已经可以单独的运行了,并且会返回用户的输入。

我们先来学习我们怎么样才可以接收和发送消息。

的事件驱动

我们之前的文章讨论了一个应用实际参与的几个组件。

物理组件:

:就是一个物理的应用,例如微信,

: 用于和相连,转发消息到

运行的资源。

逻辑组件:

一个消息的流入路径是:用户 ->  ->  ->  ->

应用的编程主要就是集中在上。

这个组件的实际表现为类中定义的一个方法:

publicoverrideasyncTaskOnTurnAsync(ITurnContextturnContext,CancellationTokencancellationToken=default(CancellationToken))

{

awaitbase.OnTurnAsync(turnContext, cancellationToken);

}

我们可以在这个方法里对传入或者传出的进行存取和访问。

我们虽然可以仅仅在应用只访问这一个方法,但是为了编程的方便,定义了很多的类型,每一个到达之后,会根据类型再次调用对应的类型方法,例如:

, ,  方法等等。如果要参考有哪些预定义的类型,您可以参考:

https://github.com/Microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md

我们默认创建的模板,仅仅是将用户输入的消息,原封不动的返回了,我们多加一些代码,当用户开始和机器人聊天时,发送一个有趣的欢迎短句:

我们打开文件, 将方法 更改为如下的方法:

protectedoverrideasyncTaskOnMembersAddedAsync(IListmembersAdded,ITurnContextturnContext,CancellationTokencancellationToken)

{

varwelcomeText="Hello and welcome!";

foreach(varmemberinmembersAdded)

{

if(member.Id!=turnContext.Activity.Recipient.Id)

{

varcard=newHeroCard

{

Text="Hello and welcome! please choose a Menu",

Buttons=newList

{

newCardAction(ActionTypes.ImBack, title:"1. Dinner",value:"1"),

newCardAction(ActionTypes.ImBack, title:"2. Gift",value:"2"),

newCardAction(ActionTypes.ImBack, title:"3. Vacation",value:"3"),

},

};

varreply=MessageFactory.Attachment(card.ToAttachment());

awaitturnContext.SendActivityAsync(reply, cancellationToken);

}

}

}

然后在命令行里运行该, 并使用来测试,测试结果如下:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221025A00OHW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券