BotFramework:创建没有文本属性的建议操作

时间:2017-11-10 23:07:53

标签: node.js botframework

我正在DirectLine创建一个机器人。我正在尝试使用SuggestedActions来显示建议的操作,但我不想为此包含text属性。当我尝试运行没有text属性的代码时,我看到显示一条空白消息。我怎么能避免这种情况?

我的代码

var msg = new builder.Message(session)
            .suggestedActions(
               builder.SuggestedActions.create(
                    session, [
                         builder.CardAction.imBack(session, "disconnect", "Disconnect"),
                     ]
             ));
session.send(msg);

我得到的输出:

enter image description here

1 个答案:

答案 0 :(得分:0)

根据我的理解,您需要一个在底部显示为绝对的按钮,并始终显示以提醒您的代理人他可以随时进行 Client client = ClientBuilder.newClient(); // change SERVER_URL, API_PATH and PATH as per REST API details WebTarget webTarget = client.target(SERVER_URL).path(API_PATH).path(PATH); Invocation.Builder invocationBuilder = webTarget.request(); Response response = invocationBuilder.get(); String contentDispositionHeader = response.getHeaderString("Content-Disposition"); String fileName = contentDispositionHeader .substring(contentDispositionHeader.indexOf("filename=") + "filename=".length()).replace("\"", ""); InputStream responseStream = response.readEntity(InputStream.class); // Set location here where you want to store downloaded file. // It will replace the file if already exist in that location with same name. Files.copy(responseStream, Paths.get("H:/"+ fileName), StandardCopyOption.REPLACE_EXISTING); System.out.println("File is downloaded"); 对话。

但是,根据我的测试和理解,在我看来,有2点可能不是一个好主意,实现这个功能:

  • disconnect基于Bot框架中的SuggestedAction。基本上Bot应用程序用于对话。因此,在不同频道中呈现的用户和机器人之间的每条消息都应始终包含在文本框中,如捕获中所示。我们无法绕过此功能。

  • 根据您的要求,我认为您希望始终显示此按钮,除非代理单击它。但是我没有在Bot框架中找到这样的任何功能,你可能需要在每个来自机器人的消息旁边发送这个消息,这不是优雅的,会带来不可预测的风险。

我的建议是你可以创建一个triggerAction来处理全局Messasge个请求。有关详细信息,请参阅https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-dialog-actions