2016-07-15 78 views
2

我正在挖掘bot框架v3中所有伟大的新东西。我正在尝试做的事情之一是创建一个响应卡片的对话框。但是我找不到一个示例显示如何执行此操作。Bot Framework v3对话框返回卡片

我试过用它自己驯服它,但没有多少运气。在他们对话框的大部分代码示例中,您将您在Post中获得的Activity对象转换为IMessageActivity类。然后,当您回复时,只需纯文本即可。所有的卡片例子都可以创建一个Activity类。但是因为我将它转换为IMessageActivity,所以我无法使用CreateReply方法。如果我无法做到这一点,那么当我创建一个活动时,我得到一个'activityId'不能为空的错误。

任何意见,想法或见解将不胜感激。

在此先感谢!

回答

4

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

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

+0

感谢。我不知道我们可以这样做。 –