gpt4 book ai didi

botframework - 如何从安卓客户端连接到微软机器人框架

转载 作者:行者123 更新时间:2023-12-04 09:34:39 25 4
gpt4 key购买 nike

我创建了一个简单的 android 应用程序,它使用 restfull jersey WS 通过 JSON 格式发送消息

我应该在连接机器人的应用程序中输入哪个 URL?

该机器人如何接收消息并发回响应?

截至目前,我正在使用 Microsoft 的机器人模拟器

提前致谢。

最佳答案

在您的机器人仪表板中启用网络聊天之前,您可以使用 DirectLine Rest API 连接您的 android 客户端。
请参阅有关 Bot 框架的直线方法的文档。

你要做的就是使用https://directline.botframework.com/api/conversations作为您的端点并调用这些 API,如文档中所示。

示例:- 我刚刚尝试使用 ASP.MVC 应用程序。我创建了一个文本框和按钮,用于向机器人提交消息。

1.首先在您的机器人应用程序中启用直接链接。然后记住那个 secret 。

2.以下代码示例向您展示了如何将您的聊天应用程序或公司应用程序与您使用机器人框架工作构建的机器人连接起来。

3.首先您需要授权您访问直接链接API。

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", "[Your Secret Key Here]");

response = await client.GetAsync("/api/tokens/");

if (response.IsSuccessStatusCode)

4.如果您之前的回复成功,您可以开始一个新的对话模型 -
public class Conversation { 
public string conversationId { get; set; }
public string token { get; set; }
public string eTag { get; set; }
}

Controller 内的代码 -
var conversation = new Conversation();
response = await client.PostAsJsonAsync("/api/conversations/",conversation);
if (response.IsSuccessStatusCode)

如果您成功完成此响应,您将获得对话 ID 和开始消息传递的 token 。

5.然后通过以下代码将您的消息传递给机器人,
Conversation ConversationInfo = response.Content.ReadAsAsync(typeof(Conversation)).Result as Conversation; string conversationUrl = ConversationInfo.conversationId+"/messages/"; Message msg = new Message() { text = message }; response = await client.PostAsJsonAsync(conversationUrl,msg); if (response.IsSuccessStatusCode)

如果您收到成功响应,则表示您已将消息发送给机器人。现在你需要得到 BOT 的回复信息

6.从bot获取消息,
response = await client.GetAsync(conversationUrl); if (response.IsSuccessStatusCode){ MessageSet BotMessage = response.Content.ReadAsAsync(typeof(MessageSet)).Result as MessageSet; ViewBag.Messages = BotMessage; IsReplyReceived = true; }

在这里你得到一个消息集,这意味着你发送的消息和机器人的回复。您现在可以在聊天窗口中显示它。

消息模型 -
public class MessageSet
{
public Message[] messages { get; set; }
public string watermark { get; set; }
public string eTag { get; set; }
}

public class Message
{
public string id { get; set; }
public string conversationId { get; set; }
public DateTime created { get; set; }
public string from { get; set; }
public string text { get; set; }
public string channelData { get; set; }
public string[] images { get; set; }
public Attachment[] attachments { get; set; }
public string eTag { get; set; }
}

public class Attachment
{
public string url { get; set; }
public string contentType { get; set; }
}

使用这些 API 调用,您可以轻松地将任何自定义聊天应用程序与机器人框架连接起来。下面是一种方法中的完整代码,让您了解如何存档目标。
 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", "[Your Secret Code Here]");
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/";
Message msg = new 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;
}

谢谢 用你的机器人干杯。

关于botframework - 如何从安卓客户端连接到微软机器人框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37783836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com