我开始学习Microsoft Bot Framework,但是当我尝试使用Connector时,它总是返回:
" message":"发生了错误。",
" exceptionMessage":"无法反序列化响应。",
" exceptionType":" Microsoft.Rest.RestException",
这是代码
public async Task<Message> Post([FromBody]Message message)
{
try
{
if (message.Type == "Message")
{
// calculate something for us to return
//int length = (message.Text ?? string.Empty).Length;
// return our reply to the user
// return message.CreateReplyMessage($"You sent {length} characters");
//var counter = message.GetBotPerUserInConversationData<int>("counter");
//// create a reply message
//Message replyMessage = message.CreateReplyMessage($"{++counter} You said:{message.Text}");
//// save our new counter by adding it to the outgoing message
//replyMessage.SetBotPerUserInConversationData("counter", counter);
//// return our reply to the user
////return replyMessage;
// return message.CreateReplyMessage("Yo, I got it.", "en");
// var replyMessage = message.CreateReplyMessage("Yo, I heard you.", "en");
// var connectorr = new ConnectorClient();
// connectorr.BaseUri = new Uri("http://localhost:3978/");
//return await connectorr.Messages.SendMessageAsync(replyMessage);
var connector = new ConnectorClient();
connector.BaseUri = new Uri("http://localhost:3978/api/messages");
await connector.Messages.SendMessageAsync(message.CreateReplyMessage($"You said:{message.Text}"));
await connector.Messages.SendMessageAsync(message.CreateReplyMessage("Yo 2.", "en"));
await connector.Messages.SendMessageAsync(message.CreateReplyMessage("Yo 3.", "en"));
return null;
}
else
{
return HandleSystemMessage(message);
}
}
catch (Exception ex)
{
throw;
}
}
答案 0 :(得分:1)
您应将其升级到最新版本3.8.0。 看看:https://docs.microsoft.com/en-us/bot-framework/resources-upgrade-to-v3
答案 1 :(得分:0)
似乎你在bot itset中创建了一个连接器。我不确定你为什么要这样做,因为这似乎创建了一个循环解决方案。您可以使用ConnectorCLient创建自己的连接到bot的messageclient。这是你想要达到的目标吗?
如果您只想根据需要使用的消息回复消息:
return message.CreateReplyMessage(&#34;哟,我明白了。&#34;,&#34; en&#34;);
您可以使用模拟器连接到您的机器人,或者将其连接到Skype,FB messanger以使其继续运行。
答案 2 :(得分:0)
尝试根据V3.0规范进行迁移,看看它现在是否有效。当代码针对v1.0并且bot已注册到v3.0时,我遇到了一些类似的问题。
答案 3 :(得分:0)
而不是await connector.Messages.SendMessageAsync(message.CreateReplyMessage($"You said:{message.Text}"));
使用await context.PostAsync($"You said: {activity.Text}");
,看看是否有效。