如何直接从API消息中获取上下文

时间:2016-11-19 12:52:00

标签: c# botframework

我正在尝试直接从Controller API / Messages中获取上下文以提示对话框

    public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
    {

        if (activity.Type == ActivityTypes.Message)
        {
          PromptDialog.Text(context, getText, "GetText");
        }

     }

我怎样才能实现这个目标?

1 个答案:

答案 0 :(得分:0)

据我所知,没有任何正确的直接方法可以做到这一点。但是,你可以使用 以下代码具有您想要的相同功能(我希望这会有所帮助):

public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{

    if (activity.Type == ActivityTypes.Message)
    {
         await Conversation.SendAsync(activity, () => new RootDialog());
    }

}

[Serializable]
public class RootDialog : IDialog<string>
{
    public async Task StartAsync(IDialogContext context)
    {
        PromptDialog.Text(context, MessageReceived, "How are You?");
    }
    private async Task MessageReceived(IDialogContext context, IAwaitable<string> result)
    {
        var message = await result;
        context.Done(message);
    }
}

实际上,它是一个对话框,作为promptDialog的包装器。