我正在开发一个 Microsoft Bot Framework 项目,以将聊天机器人添加到我的网站。我需要不断地将数据从聊天 UI 传递到 Bot 以获取用户详细信息和当前页面详细信息。因此我不能使用网络聊天客户端。
除了创建自己的聊天界面外,我还可以使用哪些其他方法?
我正在开发一个 Microsoft Bot Framework 项目,以将聊天机器人添加到我的网站。我需要不断地将数据从聊天 UI 传递到 Bot 以获取用户详细信息和当前页面详细信息。因此我不能使用网络聊天客户端。
除了创建自己的聊天界面外,我还可以使用哪些其他方法?
除了创建自己的聊天界面外,我还可以使用哪些其他方法?根据这个说法,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 响应创建的类。如果你需要,我也可以添加。
干杯!