【C#/Bot Framework】ボットチャットのメッセージを編集

「C#」「Visual Studio」「Microsoft Bot Framework」でボットチャットのメッセージを編集する方法について入門者向けにまとめました。

ボットチャットのメッセージを編集

①Visual Studioで[Bot Application]のプロジェクトを開きます。

補足「Microsoft Bot Frameworkのインストール・動作確認」はこちら
1 【VS2017】Microsoft Bot Framework 一式をインストール
2 テンプレートのパッケージ更新
3 エミュレータの動作確認

② [Controllers]フォルダ → [MessagesController.cs]ファイルを開きます。

③ メッセージ受信時の処理

次の部分が、ユーザーからのメッセージを受信する部分となります。

public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
    if (activity.Type == ActivityTypes.Message)
    {
        await Conversation.SendAsync(activity, () => new Dialogs.RootDialog());
    }
    else
    {
        HandleSystemMessage(activity);
    }
    var response = Request.CreateResponse(HttpStatusCode.OK);
    return response;
}

④ ボット側のメッセージを作成

次の部分が、ボット側のメッセージを作成する部分です。

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;

    // ユーザーのメッセージの文字数をカウント
    int length = (activity.Text ?? string.Empty).Length;

    // 返信の定義部分
    await context.PostAsync($"You sent {activity.Text} which was {length} characters");

    context.Wait(MessageReceivedAsync);
}

例えば、返信の定義部分を次のようにすると、単にオウム返しするチャットボットになります。

await context.PostAsync($"「{activity.Text}」");
関連ページ
1 【Microsoft Bot Framework入門】ボット作成・使い方
2 【C#入門】基礎文法とサンプル集
関連記事