こんにちは私は、ユーザーがボタンをクリックしたときのような要件があるという点でボットに取り組んでいます。このような次のカードに関連するコンテンツを表示します。それぞれのカードでボットのボタンクリック機能を実装する方法
誰もが適応カード、豊富なカードやサムネイルカードのような任意のカードを使ってボットに上記のシナリオを実装する方法を教えていただけますか?適応型カードとの
こんにちは私は、ユーザーがボタンをクリックしたときのような要件があるという点でボットに取り組んでいます。このような次のカードに関連するコンテンツを表示します。それぞれのカードでボットのボタンクリック機能を実装する方法
誰もが適応カード、豊富なカードやサムネイルカードのような任意のカードを使ってボットに上記のシナリオを実装する方法を教えていただけますか?適応型カードとの
、あなたはそのためAdaptiveSubmitAction
を使用することができます。
new AdaptiveSubmitAction()
{
Data = "show me the next card"
};
これはmessage.Text
はData
の値であると、あなたはそれをユーザーから通常のメッセージと同じように処理できるとの新しい着信メッセージを生成します。
あなたがImBack
とPostBack
アクションを使用して、他の豊富なカード/サムネールカードで同じことを達成することができます
new CardAction()
{
Type = ActionTypes.ImBack,
Value = "show me the next card"
}
AdaptiveSubmitAction
もあなたの代わりにData
を使用することができますDataJson
性質を持っている(DataJson
は効果がありません両方を使用します)。そこにjson構造を置くことができます。message.Value
の着信メッセージになりますが、message.Text
はnullになります。
これは、詳細を渡す必要がある場合などに便利です。 DataJson = "{ \"CardName\": \"City\", \"Name\": \"New York\" }"
は、ニューヨーク市の都市カードをいくつか開くことを希望している可能性があります。そして、あなたは、このような構造を取得することができます。
protected override async Task MessageReceived(IDialogContext context, IAwaitable<IMessageActivity> item)
{
var message = await item;
if (string.IsNullOrEmpty(message.Text))
{
dynamic value = message.Value;
if (value == null)
{
// empty message - show help, error etc.
}
dynamic cardName = value.CardName;
// check the name, respond with the wanted card ...
}
else
{
// process as usual
await base.MessageReceived(context, item);
}
}
Hereは、JSONのアプローチを使用するサンプルプロジェクトです。
私は既にそれをしましたが、ボットに私のメッセージに値を渡す方法を立てることができません。上記の例のシナリオでは、それらはすべて詳細を提供して値を取得していますが、私のシナリオでは、ボタンをクリックしてテキストのような値を押して、可能性があり、jsonデータを渡さずに処理できます。 ..可能性がある場合はお知らせください。 – sateesh
Adaptive Cardを使用し、メッセージの 'Text'プロパティに値を設定したいのですか?私はjsonのアプローチを使ってより多くの情報を渡しましたが、私はあなたのテキストを 'DataJson'ではなく' Data'に設定できることを知りました。私は答えを更新しました。 –
あなたのソリューションでうまくいってくれてありがとう – sateesh