簡體   English   中英

收到錯誤“無法反序列化響應”

[英]Getting error “Unable to deserialize the response”

我開始學習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;
        }
    }

您應該將其升級到最新版本3.8.0。 看看: https//docs.microsoft.com/en-us/bot-framework/resources-upgrade-to-v3

看來你在bot itset中創建了一個連接器。 我不確定你為什么要這樣做,因為這似乎創建了一個循環解決方案。 您可以使用ConnectorCLient創建自己的連接到bot的messageclient。 這是你想要達到的目標嗎?

如果您只想根據需要使用的消息回復消息:

return message.CreateReplyMessage(“喲,我明白了。”,“en”);

您可以使用模擬器連接到機器人或將其連接到Skype,FB messanger以使其運行。

嘗試根據V3.0規范進行遷移,看看它是否正常工作。 當代碼針對v1.0並且bot已注冊到v3.0時,我遇到了一些類似的問題。

而不是await connector.Messages.SendMessageAsync(message.CreateReplyMessage($"You said:{message.Text}")); 使用await context.PostAsync($"You said: {activity.Text}"); 並看看是否有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM