使用 DirectLine 处理 AdaptiveCard 操作的正确方法是什么?

What is a proper way to handle AdaptiveCard action using DirectLine?

使用 DirectLine 在客户端处理 AdaptiveCard 操作的正确方法是什么?我应该为 activity 手动构建 "value" 吗?

如果是这样,我意识到 multi-select 的值对于不同的通道以不同的方式处理(BotFrameworkEmulator 发送用逗号分隔的值,而 WebChat 使用分号)。我应该选择哪种格式?这种不一致不是错误吗?

从某种意义上说,Emulator 是 WebChat 的一种形式。我不认为不一致是一个错误,但如果您在不同的地方看到 WebChat,那么它可能是不同的版本,因此可能会有不同的行为。

幸运的是,您的机器人代码可以自由地解释接收到的值,但您希望它如此。如果您的机器人可能 运行 在多个渠道上,那么您可能希望让您的机器人足够聪明,以考虑多个可能的选择分隔符。否则,您只需确保您的机器人正在为您想要运行它的频道寻找正确的分隔符。

据我所知,逗号是更标准的最新分隔符,因此最好使用逗号。但是,如果您正在制作自己的 Direct Line 客户端,那么最终由您决定如何格式化您的客户端发送给机器人的活动。

我想说不一致不是错误,它只是不同渠道发送回数据的方式不同。请记住,自适应卡片是在用户和机器人代码之间交换数据的一个相当新的概念。每个通道如何呈现和 post 编辑值以形成通用格式仍然需要时间。话虽如此,我不会过多考虑这个问题。 机器人的设计模式应始终在固定发布机器人的频道 之后进行。一旦通道固定,那么只需要编码来处理 post 返回数据发送回 bot

的各种方式