Как использовать Предлагаемые действия в диалоге и потоке форм соответственно в среде бота - PullRequest
0 голосов
/ 22 января 2019
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
{
    var cli = new ConnectorClient(new Uri(activity.ServiceUrl));
    var activity = await result as IMessageActivity;

    await context.PostAsync($"{activity.Text}");

    activity.SuggestedActions = new SuggestedActions()
    {
        Actions = new List<CardAction>()
        {
            new CardAction(){ Title = "Blue", Type=ActionTypes.ImBack, Value="Blue" },
            new CardAction(){ Title = "Red", Type=ActionTypes.ImBack, Value="Red" },
            new CardAction(){ Title = "Green", Type=ActionTypes.ImBack, Value="Green" }
        }
    };

    await context.PostAsync(activity);

    context.Wait(MessageReceivedAsync);
}

Я хочу, чтобы бот предлагал пользователю действия, мне нужно сделать это в диалоговом окне, а иногда и в форме потока.я не смог понять это.Это на самом деле работало, когда я пытался в контроллере сообщений.

1 Ответ

0 голосов
/ 23 января 2019

Попробуйте создать ответ вроде:

    var activity = await result as Activity;
    var reply = activity.CreateReply("I have colors in mind, but need your help to choose the best one.");

    reply.SuggestedActions = new SuggestedActions()
    {
        Actions = new List<CardAction>()
        {
            new CardAction(){ Title = "Blue", Type=ActionTypes.ImBack, Value="Blue" },
            new CardAction(){ Title = "Red", Type=ActionTypes.ImBack, Value="Red" },
            new CardAction(){ Title = "Green", Type=ActionTypes.ImBack, Value="Green" }
        }
    };

    await context.PostAsync(reply);

    context.Wait(MessageReceivedAsync);

Вы должны быть в состоянии вставить это в свой метод MessageReceivedAsync, и он должен работать. Вам также не нужно создавать свой ClientConnector.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...