2

我正在研究机器人框架技术,在一个项目中,我为英雄卡和缩略图卡实现了代码。

在我添加了上述概念的代码后,接下来我在 Bot Framework Channel Emulator 中进行了测试,它工作正常并成功显示了英雄卡。但是在我将我的代码发布到 azure 并将Skype频道添加到我的机器人之后,现在我开始与我的机器人聊天以显示英雄卡图像,但它没有显示任何英雄卡图像,如下图所示。 在此处输入图像描述

同样,我实现了表单流概念,它在 Bot Emulator 中运行良好,但在 Skype 频道中不起作用,它显示与上图相同的问题。

请告诉如何解决这个问题。我认为 Skype 中可能存在显示英雄卡和表单流对话框的错误。

普拉迪普

4

2 回答 2

7

这不是 Skype 中的错误,而是缺少的功能。普通的 Skype 客户端(桌面、网络、移动)尚未更新以包含 HeroCards,因此它们无法显示,除了 iOS 客户端(参见http://blogs.skype.com/2016/07/20/ skype-6-20-for-ios-find-bots-improved-notifications-and-chat/

正如 botbuilder 项目所暗示的那样,您可以使用{listStyle: builder.ListStyle["inline"]}解决方法将您的内容显示为选项列表而不是卡片。请参阅:https ://github.com/Microsoft/BotBuilder/issues/720 。

否则,您现在所能做的就是安装包含该功能的开发人员构建或等待更新版本(应该很快就会出现)。

于 2016-07-23T22:53:53.900 回答
0

有用。Skype 是另一个渠道。在大多数情况下,使用 bot 框架开发的代码可以在 Skype 上运行,某些功能需要特定于 Skype。因此,为了使您的卡正常工作,您必须用 Skype 替换 botbuilder。请参阅下面的示例,该示例取自Microsoft 英雄卡并修改为在 Skype Skype 英雄卡结果中工作

Replace builder by skype
//var builder = require('botbuilder');

var skype = require('botbuilder');

var msg = new skype.Message(session);
    msg.attachmentLayout(skype.AttachmentLayout.carousel)
    msg.attachments([
        new skype.HeroCard(session)
            .title("Classic White T-Shirt")
            .subtitle("100% Soft and Luxurious Cotton")
            .text("Price is $25 and carried in sizes (S, M, L, and XL)")
            .images([skype.CardImage.create(session, 'https://avatars1.githubusercontent.com/u/6422482?v=4&s=460')])
            .buttons([
                skype.CardAction.imBack(session, "buy classic white t-shirt", "Buy")
            ]),
        new skype.HeroCard(session)
            .title("Classic Gray T-Shirt")
            .subtitle("100% Soft and Luxurious Cotton")
            .text("Price is $25 and carried in sizes (S, M, L, and XL)")
            .images([skype.CardImage.create(session, 'https://avatars1.githubusercontent.com/u/6422482?v=4&s=460')])
            .buttons([
                skype.CardAction.imBack(session, "buy classic gray t-shirt", "Buy")
            ])
    ]);
    session.send(msg);

于 2017-07-23T15:49:52.500 回答