编程语言
首页 > 编程语言> > c#-在机器人启动时发送自适应卡作为欢迎消息

c#-在机器人启动时发送自适应卡作为欢迎消息

作者:互联网

我有一些代码可以让机器人在启动时发送消息(字符串).

但是,不要像下面的代码那样发送文本.我正在尝试弄清楚在这种情况下如何发送自适应卡.我之前从RootDialog发送了Card,但没有从MessageController.cs发送.任何方向在这里都很棒!

else if (message.Type == ActivityTypes.ConversationUpdate)
            {
                // Handle conversation state changes, like members being added and removed
                // Use Activity.MembersAdded and Activity.MembersRemoved and Activity.Action for info
                // Not available in all channels

                IConversationUpdateActivity iConversationUpdated = message as IConversationUpdateActivity;
                if (iConversationUpdated != null)
                {
                    ConnectorClient connector = new ConnectorClient(new System.Uri(message.ServiceUrl));

                    foreach (var member in iConversationUpdated.MembersAdded ?? System.Array.Empty<ChannelAccount>())
                    {
                        // if the bot is added, then
                        if (member.Id == iConversationUpdated.Recipient.Id)
                        {
                            var reply = ((Activity)iConversationUpdated).CreateReply($"WELCOME MESSAGE HERE");
                            await connector.Conversations.ReplyToActivityAsync(reply);
                        }
                    }
                }
            }

谢谢

解决方法:

使用您提供的代码段,您应该可以复制并粘贴该代码段以替换它.可以在bot框架中找到有关卡的更多信息in this blog

       else if (message.Type == ActivityTypes.ConversationUpdate)
        {
            IConversationUpdateActivity iConversationUpdated = message as IConversationUpdateActivity;
            if (iConversationUpdated != null)
            {
                ConnectorClient connector = new ConnectorClient(new System.Uri(message.ServiceUrl));

                foreach (var member in iConversationUpdated.MembersAdded ?? System.Array.Empty<ChannelAccount>())
                {
                    // if the bot is added, then
                    if (member.Id == iConversationUpdated.Recipient.Id)
                    {

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

                        AdaptiveCard card = new AdaptiveCard();

                        // Specify speech for the card.
                        card.Speak = "<s>Your  meeting about \"Adaptive Card design session\"<break strength='weak'/> is starting at 12:30pm</s><s>Do you want to snooze <break strength='weak'/> or do you want to send a late notification to the attendees?</s>";

                        // 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);
                    }
                }
            }
        }

标签:botframework,adaptive-cards,c
来源: https://codeday.me/bug/20191025/1932382.html