Aak*_*tra 1 asp.net-mvc bots web-chat botframework
我正在开发一个Microsoft Bot Framework项目,以便将聊天机器人添加到我的网站.我需要将数据从聊天UI连续传递到Bot以获取用户详细信息和当前页面详细信息.因此我无法使用Web Chat客户端.
除了创建自己的聊天界面外,我还可以使用哪些其他方法?
除了创建自己的聊天界面外,我还可以使用哪些其他方法?根据这个声明,WebChat是最简单的方法.因为只有嵌入的iframe才能创建聊天机器人.除此之外,
有一个REST Api可以访问botframework.它被称为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;
}
Run Code Online (Sandbox Code Playgroud)
这里Message, MessageSet and Conversation是通过查看文档中的Json响应创建的类.如果您需要,我也可以添加.
干杯!
| 归档时间: |
|
| 查看次数: |
2411 次 |
| 最近记录: |