如何在microsoft bot框架中进行rest api调用

时间:2018-01-17 08:28:22

标签: rest botframework

我需要一个接受用户输入的机器人,将其用作某个第三方rest api调用的id并发回响应。我查看了Microsoft文档,但没有找到有关如何编写请求 - 响应过程的任何示例。

任何示例或有用的链接都将受到赞赏

2 个答案:

答案 0 :(得分:3)

添加到Jason的答案,因为您想要进行REST api调用,请查看此代码:

public class RootDialog : IDialog<object>
{
    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;

        // User message
        string userMessage = activity.Text;
        try
        {
            using (HttpClient client = new HttpClient())
            {
                //Assuming that the api takes the user message as a query paramater
                string RequestURI = "YOUR_THIRD_PARTY_REST_API_URL?query=" + userMessage ;
                HttpResponseMessage responsemMsg = await client.GetAsync(RequestURI);
                if (responsemMsg.IsSuccessStatusCode)
                {
                    var apiResponse = await responsemMsg.Content.ReadAsStringAsync();

                    //Post the API response to bot again
                    await context.PostAsync($"Response is {apiResponse}");

                }
            }
        }
        catch (Exception ex)
        {

        }
        context.Wait(MessageReceivedAsync);
    }
}

从用户那里获得输入后,您可以进行REST调用,然后在从API获得响应后,使用context.PostAsync方法将其发回给用户。

答案 1 :(得分:1)

正如Ashwin所说,机器人只是一个Web API,您只需发送/接收请求,就像使用任何Web API一样。以下是一些有助于您入门的文档。

Basic Overview
Create a bot with the Bot Connector service
API Reference