2016-07-15 84 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

感謝。我不知道我們可以這樣做。 –