【发布时间】:2021-05-10 19:27:17
【问题描述】:
screen capture of code + directory
我正在使用 Visual Studio 上的 Microsoft Bot Framework 创建美容院预约聊天机器人。使用的语言是C#;请注意,我正在学习,因此对所有这些都是新手。这也是我第一次在 stackoverflow 上发帖,所以如果我的问题有点无益或不清楚,我深表歉意:(
我在这里尝试做的是接收一个日期输入值,请求一个时间输入值,然后接收一个名称输入值。当我运行此代码时,机器人在日期输入后没有响应。我知道这段代码首先是可悲且功能失调的,但我的大脑正在溢出 - 我被卡住并且没有想法。任何潜在的修复将不胜感激。谢谢:)
private async Task ReservationDateMessageAsync(IDialogContext context, IAwaitable<object> beforeActivity)
{
await context.PostAsync($"예약하실 날짜를 입력해주세요~ \n\n 예)12월 31일");
context.Wait(ResolvationTime);
}
private async Task ResolvationTime(IDialogContext context, IAwaitable<object> result)
{
var activity = await result as Activity;
memberReservation.Date = activity.Text; // Save reservation date value
//2.1 시간 선택 (Time selection)
if (activity.Text.Equals("") == false || !activity.Text.Equals(""))
{
List<CardAction> salon_Button = new List<CardAction>();
salon_Button.Add(new CardAction()
{
Title = "10시 ~ 13시",
Value = "10시 ~ 13시",
Type = ActionTypes.ImBack
});
salon_Button.Add(new CardAction()
{
Title = "14시 ~ 17시",
Value = "14시 ~ 17시",
Type = ActionTypes.ImBack
});
salon_Button.Add(new CardAction()
{
Title = "17시 ~ 20시",
Value = "17시 ~ 20시",
Type = ActionTypes.ImBack
});
salon_Button.Add(new CardAction()
{
Title = "이전으로", // Previous stage
Value = "이전으로",
Type = ActionTypes.ImBack
});
HeroCard salon_Card = new HeroCard()
{
Title = activity.Text,
Subtitle = "원하시는 시간을 선택해주세요 ^^", // Please select the desired time
Buttons = salon_Button
};
var message = context.MakeMessage();
message.Attachments.Add(salon_Card.ToAttachment());
context.Wait(this.OnReservationTimeSelected);
}
else
{
//다시 이전(날짜부터 다시 묻기) 질문하기 (Return to previous question)
await this.ReservationDateMessageAsync(context, null);
}
}
/// <summary>
/// 예약시간 선택완료 (Reservation time selection done)
/// </summary>
/// <param name="context"></param>
/// <param name="result"></param>
/// <returns></returns>
private async Task OnReservationTimeSelected(IDialogContext context, IAwaitable<IMessageActivity> result)
{
var message = await result;
memberReservation.Time = message.Text;
if (message.Text == "10시 ~ 13시" || message.Text == "1")
{
// Display reservation time and ask for name input
await context.PostAsync($" { memberReservation.Date} { memberReservation.Time}에 예약하셨습니다.\n\n 성함을 입력해주세요.\n\n ");
context.Wait(this.GetUserNameAsync);
}
else if (message.Text == "14시 ~ 17시" || message.Text == "2")
{
await context.PostAsync($" { memberReservation.Date}에 { memberReservation.Time}에 예약하셨습니다.\n\n 성함을 입력해주세요.\n\n ");
context.Wait(this.GetUserNameAsync);
}
else if (message.Text == "17시 ~ 20시" || message.Text == "3")
{
await context.PostAsync($" { memberReservation.Date}에 { memberReservation.Time}에 예약하셨습니다.\n\n 성함을 입력해주세요.\n\n ");
context.Wait(this.GetUserNameAsync);
}
else if (message.Text == "이전으로")
{
await this.ResolvationTime(context, result);
}
else
{ // Error message
await this.StartOverAsync(context, "죄송합니다. 요청사항을 이해하지 못했습니다.^^; ");
}
【问题讨论】:
标签: c# botframework chatbot