現在、BotFrameworkではインタラクティブな図表はサポートされていません。チャートを生成するために@Peter Bonsの推奨またはオンラインサービスとしてサードパーティ製のライブラリを使用できますが、これを画像ファイルとしてレンダリングして、このファイルをメッセージに添付するには、HeroCard
/AdaptiveCard
ボットを使用してください。
あなたのデータはfinance.Yahoo.comであるため、Yahooがチャート画像を生成することをサポートしているかどうかはわかりませんが、そうでなければ、Yahooからデータを取得してオンラインサービスチャート画像を最初に描画するサードパーティ製のlib。
画像がレンダリングされた後、あなたはこのように、たとえば画像添付 としてそれを送ることができますが:
[Serializable]
public class RootDialog : IDialog<object>
{
public Task StartAsync(IDialogContext context)
{
context.Wait(MessageReceivedAsync);
return Task.CompletedTask;
}
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
{
var activity = await result as Activity;
var card = CreateHeroCard();
Attachment attachment = card.ToAttachment();
var message = context.MakeMessage();
message.Attachments.Add(attachment);
await context.PostAsync(message);
context.Wait(MessageReceivedAsync);
}
private HeroCard CreateHeroCard()
{
List<CardImage> cardImages = new List<CardImage>();
cardImages.Add(new CardImage("your chart image url goes here"));
var card = new HeroCard()
{
Title = "Months with Numbers Bar Chart",
Subtitle = "Using a Chart as Image service...",
Text = "Build and connect intelligent bots that have charts rendered as images.",
Images = cardImages
};
return card;
}
}
あなたは[oxyplot](http://www.oxyplot.org/)のようなライブラリを使用することができます、チャートを作成し、公共のアクセス可能な場所に保存して、ヒーローカードなどに入れます。私は青空関数([ソース](https://github.com/Expecho/IoT-Project/blob/master/src/backend/AzureFunctions/RenderChart.cs))でこれを行いました –