【问题标题】:Send an image attachment in Microsoft Azure Chatbot在 Microsoft Azure 聊天机器人中发送图像附件
【发布时间】:2017-03-22 07:14:52
【问题描述】:

我使用 Microsoft Azure 机器人服务和 LUIS 创建了一个聊天机器人。使用经过 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); 

我的案例:

我想在下面的 URL 图片中附上“嗨!与我的 Intent 'Greetings' 匹配时的欢迎消息。

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

ContentType = "图片/jpeg"

我不知道如何以及在我的代码中添加上述内容 URL 以发送邮件附件。

有人可以帮我吗?

【问题讨论】:

    标签: azure botframework chatbot azure-language-understanding azure-bot-service


    【解决方案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 中查看这些示例用法。

    【讨论】:

      【解决方案2】:

      感谢 RAS 和 mgbennet。

      它适用于以下代码:

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

      【讨论】:

        【解决方案3】:

        使用这样的东西怎么样?

        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);});
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-03-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-11-15
          • 1970-01-01
          • 2022-09-29
          相关资源
          最近更新 更多