在Bot Framework v3.0上使用Slack连接器抛出异常的ReplyToActivityAsync

时间:2016-07-09 05:54:14

标签: botframework

我创建了一个bot v3.0项目并将其连接到Slack和Skype。 Skype连接器运行良好,但我遇到了Slack连接器的问题。

这是默认项目中的Post处理程序。

public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
    if (activity.Type == ActivityTypes.Message)
    {
        ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));

        // calculate something for us to return
        int length = (activity.Text ?? string.Empty).Length;

        // return our reply to the user
        Activity reply = activity.CreateReply($"You sent {activity.Text} which was {length} characters");
        await connector.Conversations.ReplyToActivityAsync(reply);
    }
    else
    {
        HandleSystemMessage(activity);
    }

    var response = Request.CreateResponse(HttpStatusCode.OK);
    return response;
}

当我从Slack发送消息时,它被传递给post处理程序,并且activity对象看起来很好。我可以看到包括消息,收件人等在内的松弛数据。然后调用:

await connector.Conversations.ReplyToActivityAsync(reply);

抛出异常,并显示消息“无法反序列化响应”和内部异常,错误为“解析值时遇到意外字符:&lt; .Path'',第0行,位置0。”

补充几点。

  1. 此相同的代码适用于Skype。
  2. 我成功地使用了Bot Framework v1项目中的这个slack bot。
  3. 对于Slack频道,我需要采取哪些不同的做法吗?

    谢谢!

    更新 此问题发生在Microsoft.Bot.Builder v3.0.0中,并在Microsoft.Bot.Builder v3.0.1中得到修复。我现在能够从Slack和Skype正确地与我的机器人进行通信。

    https://github.com/Microsoft/BotBuilder/releases/tag/botbuilder%403.0.1

    谢谢史蒂文尼!

2 个答案:

答案 0 :(得分:0)

其他人也会遇到这种情况。以下是相关问题:https://github.com/Microsoft/BotBuilder/issues/618

答案 1 :(得分:0)

此问题发生在Microsoft.Bot.Builder v3.0.0中,并在Microsoft.Bot.Builder v3.0.1中修复。我现在能够从Slack和Skype正确地与我的机器人进行通信。

https://github.com/Microsoft/BotBuilder/releases/tag/botbuilder%403.0.1

谢谢史蒂文尼!