Node.js 如何在不使用sourceEvent的情况下在bot框架中发送gif图像

Node.js 如何在不使用sourceEvent的情况下在bot框架中发送gif图像,node.js,bots,botframework,botbuilder,Node.js,Bots,Botframework,Botbuilder,我正在尝试在所有平台上使用bot框架发送GIF图像。我不想使用sourceEvent在每个平台上分别发送自定义GIF。我当前的代码如下所示 您好,首先,感谢您为维护此库所付出的巨大努力。我想通过所有通道发送GIF,并阅读文档repo中有关AnimationCard的内容 我的代码如下所示 function onMessage(session) { var msg = new builder.Message(session).addAttachment(createAnimationCar

我正在尝试在所有平台上使用bot框架发送GIF图像。我不想使用sourceEvent在每个平台上分别发送自定义GIF。我当前的代码如下所示

您好,首先,感谢您为维护此库所付出的巨大努力。我想通过所有通道发送GIF,并阅读文档repo中有关AnimationCard的内容

我的代码如下所示

function onMessage(session) {
    var msg = new builder.Message(session).addAttachment(createAnimationCard(session, 'title', 'subtitle', 'text'));
    session.send(msg);
}

function createAnimationCard(session, title, subtitle, text) {
    return new builder.AnimationCard(session)
        .title(title)
        .subtitle(subtitle)
        .text(text)
        .media([
            new builder.MediaUrl()
                .profile('GIF test')
                .url('http://media2.giphy.com/media/FiGiRei2ICzzG/giphy.gif')
        ])
}
我怎么会说这个错误

TypeError: builder.AnimationCard is not a constructor
    at createAnimationCard (D:\bots\fastrivia\index.js:65:12)
    at Array.onMessage (D:\bots\fastrivia\index.js:60:58)
    at SimpleDialog.waterfallAction [as fn] (D:\bots\fastrivia\node_modules\botbuilder\lib\dialogs\DialogAction.js:131:25)
    at SimpleDialog.begin (D:\bots\fastrivia\node_modules\botbuilder\lib\dialogs\SimpleDialog.js:15:14)
    at Session.beginDialog (D:\bots\fastrivia\node_modules\botbuilder\lib\Session.js:180:16)
    at routeToDialog (D:\bots\fastrivia\node_modules\botbuilder\lib\Session.js:421:23)
    at D:\bots\fastrivia\node_modules\botbuilder\lib\Session.js:449:29
    at D:\bots\fastrivia\node_modules\botbuilder\lib\Session.js:505:25
    at ActionSet.recognizeAction (D:\bots\fastrivia\node_modules\botbuilder\lib\dialogs\ActionSet.js:44:9)
    at D:\bots\fastrivia\node_modules\botbuilder\lib\Session.js:501:43

当我在node_模块下检查时,botframework库中的cards包下似乎没有AnimationCard。在bot框架上跨所有平台发送GIF的最佳方式是什么?

我认为这里的问题是
Node.js
中使用
AnimationCard
的位尚未公开,因此我相信您需要安装BotBuilder的预发布版本:

npm install --save botbuilder@next

我认为这里的问题在于
Node.js
中使用
AnimationCard
的位尚未公开,因此我认为您需要安装BotBuilder的预发布版本:

npm install --save botbuilder@next

您的代码非常好,只需用对象替换
新的builder.MediaUrl()
。通常情况下,像MediaUrl这样简单的结构必须直接初始化,并且在框架中没有构造函数

function createAnimationCard(session, title, subtitle, text) {
    return new builder.AnimationCard(session)
        .title(title)
        .subtitle(subtitle)
        .text(text)
        .media([{ profile: 'GIF test',
                  url: 'http://media2.giphy.com/media/FiGiRei2ICzzG/giphy.gif'
        }])
}

您的代码非常好,只需用对象替换
新的builder.MediaUrl()
。通常情况下,像MediaUrl这样简单的结构必须直接初始化,并且在框架中没有构造函数

function createAnimationCard(session, title, subtitle, text) {
    return new builder.AnimationCard(session)
        .title(title)
        .subtitle(subtitle)
        .text(text)
        .media([{ profile: 'GIF test',
                  url: 'http://media2.giphy.com/media/FiGiRei2ICzzG/giphy.gif'
        }])
}

感谢您的输入,我这样做了,并且可以使用AnimationCard,但是有一个问题,它有一个函数media(),它接受一个MediaUrl数组,但我在任何地方都找不到类MediaUrl,任何想法作为输入的库,我这样做了,并且可以使用AnimationCard,但是有一个问题,它有一个函数media()它似乎接受了一个MediaUrl数组,但我在任何地方都找不到MediaUrl类