【问题标题】:Sending images or buttons on facebook messenger via ibm watson configuered via botkit通过 ibm watson 在 facebook messenger 上发送图像或按钮,通过 botkit 配置
【发布时间】:2019-12-10 04:11:41
【问题描述】:

我做了一个 wotson 聊天机器人,部署在 facebbok messenger 上,broker 是一个节点应用程序,就像在this github example 中一样。我正在完美地接收文本响应,但是如何配置机器人以将图像或按钮发送到 fb Messenger。我已经尝试在 watson 对话框中使用 JSON 选项响应。 JSON:

{
  "output": {

  },
"context":{
"facebook":{
  "message":{
    "attachment":{
        "type":"image",
        "payload":{
            "url":"https://petersapparel.com/img/shirt.png"
        }
    }
  }
}
}
}

我认为我的 JSON 有问题。

【问题讨论】:

    标签: facebook-messenger watson-conversation watson


    【解决方案1】:

    发送按钮用template_typegeneric定义消息,用type定义按钮postback

    controller.hears('test', 'message_received', function(bot, message) {
    
        var attachment = {
            'type':'template',
            'payload':{
                'template_type':'generic',
                'elements':[
                    {
                        'title':'Chocolate Cookie',
                        'image_url':'http://cookies.com/cookie.png',
                        'subtitle':'A delicious chocolate cookie',
                        'buttons':[
                            {
                            'type':'postback',
                            'title':'Eat Cookie',
                            'payload':'chocolate'
                            }
                        ]
                    },
                ]
            }
        };
    
        bot.reply(message, {
            attachment: attachment,
        });
    
    });
    

    要发送附件,请定义带有资源 url 和调用上传方法的附件消息。

    controller.hears('test', 'message_received', function(bot, message) {
    
    var attachment = {
            "type":"image",
            "payload":{
                "url":"https://pbs.twimg.com/profile_images/803642201653858305/IAW1DBPw_400x400.png",
                "is_reusable": true
            }
        };
    
        controller.api.attachment_upload.upload(attachment, function (err, attachmentId) {
            if(err) {
                // Error
            } else {
                var image = {
                    "attachment":{
                        "type":"image",
                        "payload": {
                            "attachment_id": attachmentId
                        }
                    }
                };
                bot.reply(message, image);
            }
        });
    }
    

    检查Botkit Messenger documentation

    【讨论】:

    • 有没有办法从 watson dilog 响应中做到这一点?不是来自经纪人应用程序
    • 您通常决定在代理应用程序中响应什么,而不是通过 Watson 对话框。 Watson 对话响应与自然语言处理有关,即检测用户陈述的全部意图。基于此,您决定要做什么。对于一些简单的意图 - 是的,您可以配置对话响应。但像你这样的场景 - 最好的经纪人。
    猜你喜欢
    • 1970-01-01
    • 2017-01-23
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多