Schaltflächen verbessern das Unterhaltungserlebnis, indem sie dem Benutzer die Möglichkeit geben, eine Frage zu beantworten oder die gewünschte Schaltfläche auszuwählen, anstatt eine Antwort über die Tastatur eingeben zu müssen. Im Gegensatz zu Schaltflächen in Rich Cards (die für den Benutzer auch nach dem Auswählen sichtbar und zugänglich bleiben), verschwinden die im Bereich der vorgeschlagenen Aktionen angezeigten Schaltflächen, nachdem der Benutzer eine Auswahl getroffen hat. Dies verhindert, dass der Benutzer innerhalb einer Unterhaltung veraltete Schaltflächen wählen kann und vereinfacht die Botentwicklung, da Sie dieses Szenario nicht berücksichtigen müssen.
Hinweis
Die JavaScript-, C#- und Python-SDKs für Bot Framework werden weiterhin unterstützt, das Java-SDK wird jedoch eingestellt und der langfristige Support endet im November 2023.
Bestehende Bots, die mit dem Java SDK erstellt wurden, werden weiterhin funktionieren.
Vorschlagen einer Aktion mithilfe von Schaltflächen
Vorgeschlagene Aktionen ermöglichen Ihrem Bot das Anzeigen von Schaltflächen. Sie können eine Liste mit Vorschlägen für Aktionen (auch als Schnellantworten bezeichnet) erstellen, die dem Benutzer für einen einzelnen Durchlauf der Unterhaltung angezeigt wird:
// Creates and sends an activity with suggested actions to the user. When the user
// clicks one of the buttons the text value from the "CardAction" will be
// displayed in the channel just as if the user entered the text. There are multiple
// "ActionTypes" that may be used for different situations.
private static async Task SendSuggestedActionsAsync(ITurnContext turnContext, CancellationToken cancellationToken)
{
var reply = MessageFactory.Text("What is your favorite color?");
reply.SuggestedActions = new SuggestedActions()
{
Actions = new List<CardAction>()
{
new CardAction() { Title = "Red", Type = ActionTypes.ImBack, Value = "Red", Image = "https://via.placeholder.com/20/FF0000?text=R", ImageAltText = "R" },
new CardAction() { Title = "Yellow", Type = ActionTypes.ImBack, Value = "Yellow", Image = "https://via.placeholder.com/20/FFFF00?text=Y", ImageAltText = "Y" },
new CardAction() { Title = "Blue", Type = ActionTypes.ImBack, Value = "Blue", Image = "https://via.placeholder.com/20/0000FF?text=B", ImageAltText = "B" },
},
};
await turnContext.SendActivityAsync(reply, cancellationToken);
}
/**
* Creates and sends an activity with suggested actions to the user. When the user
* clicks one of the buttons the text value from the "CardAction" will be
* displayed in the channel just as if the user entered the text. There are multiple
* "ActionTypes" that may be used for different situations.
*/
private static CompletableFuture<Void> sendSuggestedActions(TurnContext turnContext) {
Activity reply = MessageFactory.text("What is your favorite color?");
CardAction redAction = new CardAction();
redAction.setTitle("Red");
redAction.setType(ActionTypes.IM_BACK);
redAction.setValue("Red");
redAction.setImage("https://via.placeholder.com/20/FF0000?text=R");
redAction.setImageAltText("R");
CardAction yellowAction = new CardAction();
yellowAction.setTitle("Yellow");
yellowAction.setType(ActionTypes.IM_BACK);
yellowAction.setValue("Yellow");
yellowAction.setImage("https://via.placeholder.com/20/FFFF00?text=Y");
yellowAction.setImageAltText("Y");
CardAction blueAction = new CardAction();
blueAction.setTitle("Blue");
blueAction.setType(ActionTypes.IM_BACK);
blueAction.setValue("Blue");
blueAction.setImage("https://via.placeholder.com/20/0000FF?text=B");
blueAction.setImageAltText("B");
SuggestedActions actions = new SuggestedActions();
actions.setActions(Arrays.asList(redAction, yellowAction, blueAction));
reply.setSuggestedActions(actions);
return turnContext.sendActivity(reply).thenApply(sendResult -> null);
}
async def _send_suggested_actions(self, turn_context: TurnContext):
"""
Creates and sends an activity with suggested actions to the user. When the user
clicks one of the buttons the text value from the "CardAction" will be displayed
in the channel just as if the user entered the text. There are multiple
"ActionTypes" that may be used for different situations.
"""
reply = MessageFactory.text("What is your favorite color?")
reply.suggested_actions = SuggestedActions(
actions=[
CardAction(
title="Red",
type=ActionTypes.im_back,
value="Red",
image="https://via.placeholder.com/20/FF0000?text=R",
image_alt_text="R",
),
CardAction(
title="Yellow",
type=ActionTypes.im_back,
value="Yellow",
image="https://via.placeholder.com/20/FFFF00?text=Y",
image_alt_text="Y",
),
CardAction(
title="Blue",
type=ActionTypes.im_back,
value="Blue",
image="https://via.placeholder.com/20/0000FF?text=B",
image_alt_text="B",
),
]
)
return await turn_context.send_activity(reply)
Zusätzliche Ressourcen
Sie können auf den vollständigen Quellcode für das Beispiel für vorgeschlagene Aktionen in C#, JavaScript, Java und Python zugreifen.