私はNode.js SDKを使用して、Microsoftボットフレームワークを使用してSkype用のボットを作成しています。CardActionとメッセージ表示(node.js SDK - skypeチャンネル)
私はいくつかの異なる動作を実験しており、いくつか問題があります。
たとえば、画像、テキスト、3つのボタンでサムネイルカードを作成しました。 1つのボタンでWebページを開きます。他の2つは、会話を進めるために、プロンプトで使用されます。 問題は、プロンプトを表示するためにラベルを表示する必要があると考えていることです。 これは間違いありませんか? ラベルが長すぎるか、またはユーザーが彼が何を押したかを再度見ることができない可能性があるためです。
私が試してみて、よりよく説明するためにいくつかのコードを貼り付けてみてください:あなたのケースで
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);
}
]);
こんにちはSergey、ありがとうございました。 これはいつでも押すことができると言っているので、問題になる可能性があります。 – jsabina
問題は、カード内のボタンが欲しいということです。私はポストバックを試みます。 – jsabina