4

我正在尝试通过将自适应卡添加到我的 luis 响应中来使用它,并遵循指南:https ://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-add-丰富的卡片附件

为什么我的按钮没有出现在我的机器人模拟器上?我错过了什么吗?见图片: 在此处输入图像描述

我的代码:

 [LuisIntent("Test")]
    public async Task Test(IDialogContext context, LuisResult result)
    {

        Activity replyToConversation = (Activity)context.MakeMessage();
        //Activity replyToConversation = message.CreateReply("Should go to conversation");
        replyToConversation.Attachments = new List<Attachment>();
        AdaptiveCard card = new AdaptiveCard();

       // Add text to the card.
        card.Body.Add(new TextBlock()
        {
            Text = "Adaptive Card design session",
            Size = TextSize.Large,
            Weight = TextWeight.Bolder
        });

        // Add text to the card.
        card.Body.Add(new TextBlock()
        {
            Text = "Conf Room 112/3377 (10)"
        });

        // Add text to the card.
        card.Body.Add(new TextBlock()
        {
            Text = "12:30 PM - 1:30 PM"
        });

        // Add list of choices to the card.
        card.Body.Add(new ChoiceSet()
        {
            Id = "snooze",
            Style = ChoiceInputStyle.Compact,
            Choices = new List<Choice>()
            {
                new Choice() { Title = "5 minutes", Value = "5", IsSelected = true },
                new Choice() { Title = "15 minutes", Value = "15" },
                new Choice() { Title = "30 minutes", Value = "30" }
            }
        });

        // Add buttons to the card.
        card.Actions.Add(new HttpAction()
        {
            Url = "http://foo.com",
            Title = "Snooze"
        });

        card.Actions.Add(new HttpAction()
        {
            Url = "http://foo.com",
            Title = "I'll be late"
        });

        card.Actions.Add(new HttpAction()
        {
            Url = "http://foo.com",
            Title = "Dismiss"
        });

        // Create the attachment.
        Attachment attachment = new Attachment()
        {
            ContentType = AdaptiveCard.ContentType,
            Content = card
        };

        replyToConversation.Attachments.Add(attachment);

        // var reply = await connector.Conversations.SendToConversationAsync(replyToConversation);
        await context.PostAsync(replyToConversation);
        context.Done(true);
    }
4

1 回答 1

5

将您的更改HttpActionOpenUrlAction(或SubmitAction,根据您的需要),您将获得您的按钮:

演示

当您查看文档时,操作的可能性是:

  • 动作.OpenUrl
  • Action.Submit
  • Action.ShowCard

它们在 C# 对象中的等价物是OpenUrlAction,SubmitActionShowCardAction

于 2017-10-10T12:34:27.067 回答