得到错误"无法反序列化响应"

时间:2016-05-14 08:00:55

标签: c# botframework

我开始学习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;
        }
    }

4 个答案:

答案 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}");,看看是否有效。