/ / HeroCardのボタンからDirectLine APIをリクエストするにはどうすればいいですか? - asp.net-mvc、ボットフレームワーク

HeroCardのボタンからDirectLine APIをリクエストするにはどうすればいいですか? - asp.net-mvc、ボットフレームワーク

MVCプロジェクトで.NETを使用しています。

私のヒーローカードにはボタンが1つあります。 POST そのボタンをクリックしてDirectLine APIにリクエストします。

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 + "" >";
}
}
}

回答:

回答№1は1

あなたのヒーローカードのボタンであなたのボット/サーバーコードにポストバックを送信させ、あなたのボットがポストバックを処理したときにリクエストをトリガーさせることができます。

postback()のドキュメントはここにあります。

あなたの postback() callはあなたのボットが認識できるようなユニークな文字列を送信します。

postback(session, "thisIsMyUniquePostbackString")

その後、ダイアログで確認できます

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

私は あなたがここでチェックすることができるという実用的なサンプル。

私が含まれていることをしないでください request-promise HTTP POSTリクエストを発行するノードモジュールですが、好きなメソッド/ライブラリを使用できます。

これが実際の作業サンプルのスクリーンショットです。

ここに画像の説明を入力