【问题标题】:Bot Framework v3 Dialog returning CardsBot Framework v3 对话框返回卡片
【发布时间】:2016-07-16 01:47:46
【问题描述】:

我正在挖掘机器人框架 v3 中所有很棒的新东西。我想做的一件事是创建一个用卡片响应的对话框。但我找不到显示如何执行此操作的示例。

我曾尝试自己玩弄它,但运气不佳。在他们的大多数对话框代码示例中,您将在 Post 中获得的 Activity 对象转换为 IMessageActivity 类。然后,当您回复时,您只需使用纯文本即可。所有带有卡片的示例都让您创建了一个 Activity 类。但是,因为我已将其转换为 IMessageActivity,所以我无法使用 CreateReply 方法。如果我不能这样做,那么当我创建一个 Activity 时,我会收到一个错误,即“activityId”不能为空。

我们将不胜感激任何建议、想法或见解。

提前致谢!

【问题讨论】:

    标签: botframework


    【解决方案1】:

    我将此代码添加到我的对话框中:

        protected override async Task MessageReceived(IDialogContext context, IAwaitable<IMessageActivity> item)
        {
            _message = (Activity)await item;
            await base.MessageReceived(context, item);
        }
    
        [field: NonSerialized()]
        private Activity _message;
    
        [LuisIntent("Ping")]
        public async Task Ping(IDialogContext context, LuisResult result)
        {
            Activity replyToConversation = _message.CreateReply("Should go to conversation, with a carousel");
            replyToConversation.Recipient = _message.From;
            replyToConversation.Type = "message";
            replyToConversation.AttachmentLayout = "carousel";
            .
            .
            .
            await context.PostAsync(replyToConversation);
            context.Wait(MessageReceived);
        }
    

    我让它在模拟器中工作,但在 Skype 中没有,但我想我的问题是这个Rich Card attachments are not showing on web chat or Skype

    【讨论】:

    • 感谢 NonSerialized。我不知道我们能不能那样做。
    猜你喜欢
    • 2017-03-03
    • 2017-04-27
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2022-01-08
    • 2019-07-27
    相关资源
    最近更新 更多