1

我正在开发一个 Microsoft Bot Framework 项目,以将聊天机器人添加到我的网站。我需要不断地将数据从聊天 UI 传递到 Bot 以获取用户详细信息和当前页面详细信息。因此我不能使用网络聊天客户端。

除了创建自己的聊天界面外,我还可以使用哪些其他方法?

4

1 回答 1

5

除了创建自己的聊天界面外,我还可以使用哪些其他方法?根据这个说法,WebChat 是最简单的方式。因为只有使用嵌入式 iframe,您才能完成聊天机器人的创建。除此之外,

有一个 REST Api 可以访问机器人框架。它被称为 Direct Line API。您可以从这里找到文档

以下是有关如何使用它的代码示例。我尝试使用该ASP.NET MVC应用程序。

private async Task<bool> PostMessage(string message)
        {

        bool IsReplyReceived = false;

        client = new HttpClient();
        client.BaseAddress = new Uri("https://directline.botframework.com/api/conversations/");
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("BotConnector", "[YourAccessToken]");
        response = await client.GetAsync("/api/tokens/");
        if (response.IsSuccessStatusCode)
        {
            var conversation = new Conversation();
            response = await client.PostAsJsonAsync("/api/conversations/", conversation);
            if (response.IsSuccessStatusCode)
            {
                Conversation ConversationInfo = response.Content.ReadAsAsync(typeof(Conversation)).Result as Conversation;
                string conversationUrl = ConversationInfo.conversationId+"/messages/";
                BotDirectLineApproch.Models.Message msg = new BotDirectLineApproch.Models.Message() { text = message };
                response = await client.PostAsJsonAsync(conversationUrl,msg);
                if (response.IsSuccessStatusCode)
                {
                    response = await client.GetAsync(conversationUrl);
                    if (response.IsSuccessStatusCode)
                    {
                        MessageSet BotMessage = response.Content.ReadAsAsync(typeof(MessageSet)).Result as MessageSet;
                        ViewBag.Messages = BotMessage;
                        IsReplyReceived = true;
                    }
                }
            }
            
        }
        return IsReplyReceived;
    }

这里Message, MessageSet and Conversation是通过查看文档中的 Json 响应创建的类。如果你需要,我也可以添加。

干杯!

于 2016-06-29T08:34:18.793 回答