2017-02-19 30 views
0

我有一個MVC項目正在使用.NET。如何從HeroCard的按鈕請求DirectLine API?

在我的英雄卡中有一個按鈕,我想通過單擊該按鈕向DirectLine API發出POST請求。

var heroCard = JsonConvert.DeserializeObject<HeroCard>(attachment.Content.ToString()); 

if (heroCard != null) { 
    objchat.ChatResponse += " " + heroCard.Title + " " + heroCard.Subtitle; 

    if (heroCard.Images != null) { 
    IList<CardImage> cardImages = heroCard.Images; 

    foreach(var image in cardImages) { 
     objchat.ChatResponse += " " + RenderImageHTML(image.Url); 
    } 
    } 

    if (heroCard.Buttons != null) { 
    IList<CardAction> cardButtons = heroCard.Buttons; 

    foreach(var button in cardButtons) { 
     objchat.ChatMessage = button.Title; 
     objchat.ChatResponse += " " + "<input type='button' value='" + button.Title + "' >"; 
    } 
    } 
} 
+0

固定碼塊和語法。 – c0deNinja

回答

1

你可以讓你的英雄卡上的按鈕來發送回發到您的BOT /服務器代碼,並有當你的機器人處理回發的請求觸發。

You can see the documentation for postback() here.

確保您的通話postback()發送一些獨特的字符串,你的機器人可以識別,理想情況下,一些普通用戶永遠不會發送。

postback(session, "thisIsMyUniquePostbackString")

然後你可以在對話框

if(session.message.text === "thisIsMyUniquePostbackString){ 
    //HeroCard was tapped, send POST request... 
} 

檢查我創建了一個working sample that you can check out here.

請不,我已經包括了request-promise節點模塊發出HTTP POST請求,但你可以使用任何你喜歡的方法/庫。

這裏的工作樣本截圖在行動:

enter image description here