在Microsoft Azure Chatbot中发送图像附件

时间:2017-03-22 07:14:52

标签: azure botframework chatbot luis azure-bot-service

我使用Microsoft Azure bot服务和LUIS创建了一个Chat bot。我的机器人在LUIS上训练过,我能够收到短信。我已将机器人连接到Skype频道。

我不知道如何将图片附件作为邮件的答案返回。

我听说一些Microsoft bot框架可以将图像作为附件发送,我不确定Azure bot服务。

示例代码:

var recognizer = new builder.LuisRecognizer(LuisModelUrl);

var intents = new builder.IntentDialog({ recognizers: [recognizer] })
    .matches('**Greetings**', (session, args) => {session.send('**Hi! Welcome**');});

bot.dialog('/', intents); 

我的案例:

我想用'嗨附上以下网址图片!欢迎'与我的意图匹配的消息' 问候'。

的contentURL:" https://img.clipartfest.com/13e01fd74f423c39c4af7dcc8a7b8455_animated-welcome-sign-animated-welcome-clip-art-images_1300-899.jpeg",

ContentType =" image / jpeg"

我不知道如何&以及在我的代码中添加上述内容网址的位置,以便向邮件发送附件。

有人可以帮我吗?

3 个答案:

答案 0 :(得分:1)

RAS是对的,尽管他的代码中有错误。您需要在matches方法中传递的函数内定义回复消息,否则您将获得ReferenceError,因为未定义会话。另外,请使用text()代替setText(),这是折旧的。

var recognizer = new builder.LuisRecognizer(LuisModelUrl);

var intents = new builder.IntentDialog({ recognizers: [recognizer] })
    .matches('**Greetings**', (session, args) => {
        var reply = new builder.Message(session)
            .text("Hello!")
            .addAttachment({contentType: "image/jpeg", contentUrl: "https://img.clipartfest.com/13e01fd74f423c39c4af7dcc8a7b8455_animated-welcome-sign-animated-welcome-clip-art-images_1300-899.jpeg"});
    });

bot.dialog('/', intents); 

添加图片的另一种方法是使用Hero CardsThumbnail Cards。您可以在Bot Framework Samples github中查看这些示例用法。

答案 1 :(得分:1)

感谢RAS和mgbennet。

它适用于以下代码:

.matches('Greetings', (session, args) => {
            var reply = new builder.Message(); 
            reply.setText(session, "![Greetings](http://aka.ms/Fo983c)");
            session.send(reply);
  })

答案 2 :(得分:0)

使用这样的东西怎么样?

var reply = 
    new builder.Message()
        .setText(session, text)
        .addAttachment({ fallbackText: "Hello!", contentType: 'image/jpeg', contentUrl: picture });
session.send(reply);

使用你的例子,它将是这样的:

var recognizer = new builder.LuisRecognizer(LuisModelUrl);

var reply = 
new builder.Message()
    .setText(session, "Hello!")
    .addAttachment({ fallbackText: text, contentType: 'image/jpeg', contentUrl: "https://img.clipartfest.com/13e01fd74f423c39c4af7dcc8a7b8455_animated-welcome-sign-animated-welcome-clip-art-images_1300-899.jpeg"});  

var intents = new builder.IntentDialog({ recognizers: [recognizer] })
.matches('Greetings', (session, args) => {session.send(reply);});