Page 29 -
P. 29
EchoDialog.cs 파일을 열어 보면 MessageReceivedAsync() 메서드를 찾을 수 있다.
MessageReceivedAsync() 내용은 코드 2-1과 같다.
코드 2-1 기본 예제 코드의 MessageReceivedAsync( ) 메서드
2
1: public async Task MessageReceivedAsync(IDialogContext context,
IAwaitable<IMessageActivity> argument)
2: {
3: var message = await argument;
4: 개발 환경과 Hello World 봇 만들어 보기
5: if (message.Text = = "reset")
6: {
7: PromptDialog.Confirm(
8: context,
9: AfterResetAsync,
10: "Are you sure you want to reset the count?",
11: "Didn't get that!",
12: promptStyle: PromptStyle.Auto);
13: }
14: else
15: {
16: await context.PostAsync($"{this.count++}: You said {message.Text}");
17: context.Wait(MessageReceivedAsync);
18: }
19: }
1번 줄에 있는 MessageReceivedAsync() 메서드는 실제 대화 내용을 처리하는 메서드로 4장에서
자세히 설명한다. 3번 줄에서는 사용자가 입력한 내용을 message 객체로 가져온다. 5번 줄에 있
는 message.Text 속성에 사용자가 보낸 메시지가 들어 있다.
16번 줄에서는 사용자가 보낸 메시지의 내용과 이 메시지가 몇 번째 메시지인지를 나타내는
count 변수의 내용을 사용자에게 출력하여 보여 주기 위해 context.PostAsync() 메서드를 이용
한다. 17번 줄에서는 다시 사용자에게 입력을 받기 위해 기다리는 context.Wait()를 사용한다.
이 예제를 실행하려면 상단에 있는 실행 버튼을 클릭하거나 F5 키를 누른다. 실행하면 오류가 발
생하므로 다음 절을 살펴보자.
033
가장 빨리 만나는 챗봇 프로그래밍(본문)5차.indd 33 2018-12-06 오전 11:08:00