Ich benutze das Node.js SDK, um einen Bot für Skype zu erstellen, mit dem Microsoft Bot-Framework.CardAction und Nachricht angezeigt (node.js SDK - Skype-Kanal)
Ich experimentiere nur wenige verschiedene Verhaltensweisen und habe einige Probleme.
Zum Beispiel habe ich eine Reihe von ThumbNails-Karten mit Bild, Text und jeweils 3 Tasten erstellt. Ein Knopf öffnet eine Webseite. Die anderen beiden werden in einer Eingabeaufforderung verwendet, um in der Konversation fortzufahren. Das Problem ist, dass ich glaube, ich muss das Etikett für die Aufforderung zur Arbeit zeigen. Ist das richtig? Da das Etikett möglicherweise lang ist/oder es für den Benutzer möglicherweise keinen Sinn macht, wieder zu sehen, was er gedrückt hat.
Ich versuche, einige Code einzufügen, um zu versuchen und besser zu erklären:
bot.dialog('/mydialog', [
function (session) {
// Ask the user to select an item from a carousel.
var msg = new builder.Message(session)
.textFormat(builder.TextFormat.xml)
.attachmentLayout(builder.AttachmentLayout.carousel)
.attachments([
new builder.ThumbnailCard(session)
.title("Card number 1")
.text("Description first card")
.images([
builder.CardImage.create(session, "https://www.example.org/img1.gif")
.tap(builder.CardAction.showImage(session, "ttps://www.example.org/img1.gif")),
])
.buttons([
builder.CardAction.openUrl(session, "https://google.com", "Website"),
builder.CardAction.imBack(session, "select:100", "button 1"),
builder.CardAction.imBack(session, "select:101", "Button2")
]),
new builder.ThumbnailCard(session)
.title("Card 2")
.text("Description card 2")
.images([
builder.CardImage.create(session, "https://image.jpg")
.tap(builder.CardAction.showImage(session, "https://image.jpg")),
])
.buttons([
builder.CardAction.openUrl(session, "https://google.com", "Website"),
builder.CardAction.imBack(session, "select:200", "button3"),
builder.CardAction.imBack(session, "select:201", "button4")
]),
]);
builder.Prompts.choice(session, msg, "select:100|select:101|select:200|select:201");
},
function (session, results) {
var action, item;
var kvPair = results.response.entity.split(':');
switch (kvPair[0]) {
case 'select':
action = 'selected';
break;
}
switch (kvPair[1]) {
case '100':
item ="/dialog1";
break;
case '101':
item ="/dialog2";
break;
case '200':
item ="/dialog3";
break;
case '201':
item ="/dialog4";
break;
}
session.beginDialog(item);
}
]);
Hallo Sergey, vielen Dank für Ihre Antwort. Sie haben Recht damit, dass es jederzeit gedrückt werden kann, das könnte ein Problem sein. – jsabina
Problem ist, dass sie den Knopf innerhalb der Karte wollen .. Ich werde versuchen, den postBack wie vorgeschlagen, danke! – jsabina