Messenger为机器人提供了快速回复按钮,如here所示
但是,我有兴趣在Microsoft Bot Framework Chat Interface上获得相同的东西。我想出了一个C#方法来执行以下操作:
var reply = activity.CreateReply("Hi, do you want to hear a joke?");
reply.Type = ActivityTypes.Message;
reply.TextFormat = TextFormatTypes.Plain;
reply.SuggestedActions = new SuggestedActions()
{
Actions = new List<CardAction>()
{
new CardAction(){ Title = "Yes", Type=ActionTypes.ImBack, Value="Yes" },
new CardAction(){ Title = "No", Type=ActionTypes.ImBack, Value="No" },
new CardAction(){ Title = "I don't know", Type=ActionTypes.ImBack, Value="IDontKnow" }
}
};
如何在Node.js中实现相同的功能?
更新的代码:
getMyID(session, args){var msg = new builder.Message(session)
.text("Let me know the date and time you are comfortable with..")
.suggestedActions(
builder.SuggestedActions.create(
session,[
builder.CardAction.imBack(session, "green", "green"),
builder.CardAction.imBack(session, "blue", "blue"),
builder.CardAction.imBack(session, "red", "red")
]
)
);
builder.Prompts.choice(session, msg, ["green", "blue", "red"]), function(session, results) {
console.log(results);
session.send('I like ' + results + ' too!');
}}
How to take response from the choices and send message to user from inside this function (the current callback function is not being triggered)?
Console.log无法正常工作。我在命令提示符下看到以下内容。
.BotBuilder:prompt-choice - Prompt.returning([object Object])
.BotBuilder:prompt-choice - Session.endDialogWithResult()
/ - Session.endDialogWithResult()
最佳答案
有一个sample in the botbuilder repo证明了这一点。以下是代码段:
var restify = require('restify');
var builder = require('../../core/');
// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
console.log('%s listening to %s', server.name, server.url);
});
// Create chat connector for communicating with the Bot Framework Service
var connector = new builder.ChatConnector({
appId: process.env.MICROSOFT_APP_ID,
appPassword: process.env.MICROSOFT_APP_PASSWORD
});
var bot = new builder.UniversalBot(connector);
server.post('/api/messages', connector.listen());
bot.use(builder.Middleware.dialogVersion({ version: 1.0, resetCommand: /^reset/i }));
bot.dialog('/', [
function (session) {
var msg = new builder.Message(session)
.text("Hi! What is your favorite color?")
.suggestedActions(
builder.SuggestedActions.create(
session,[
builder.CardAction.imBack(session, "green", "green"),
builder.CardAction.imBack(session, "blue", "blue"),
builder.CardAction.imBack(session, "red", "red")
]
)
);
builder.Prompts.choice(session, msg, ["green", "blue", "red"]);
},
function(session, results) {
builder.LuisRecognizer.recognize(results.response.entity,"Model URL", function(error, intents, entities){
//your code here
})
},
]);
关于c# - Webchat-Bot Framework(Nodejs)中的快速回复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47437171/