我有一个机器人回复仅包含附件的消息。当它在Slack上工作时,它使用Slack附件格式相当严重,因此我必须使用ChannelData
属性。无法发送定制的Slack消息与Bot连接器的版本3
在BotConnector的版本1,代码是这样
var reply = message.CreateReplyMessage();
reply.Attachments = new List<Attachment>();
var attachments = new List<object>(); //Slack-formatted attachments
//filling attachments...
reply.ChannelData = new {attachments};
和它的工作。现在,在第3版的代码已更改为
var reply = activity.CreateReply();
reply.Attachments = new List<Attachment>();
var attachments = new List<object>(); //Slack-formatted attachments
//filling attachments...
reply.ChannelData = new {attachments};
var connector = new ConnectorClient(new Uri(activity.ServiceUrl));
await connector.Conversations.ReplyToActivityAsync(reply);
其中,基本上可以归结为使用不同的方法来创建的答复,以及一个又一个的答复送回去。
现在,问题是,我没有得到答复回Slack。在AppInsight诊断给我看在连接器的东西,类似的地方出现这种情况:
异常类型信息:System.ArgumentNullException
失败的方法:SlackChannel.SlackMapper + d__5.MoveNext
异常消息:值不能空值。参数名:源
ChannelData:{}
消息:无效ChannelData
请注意,ChannelData
在此诊断似乎是空的。所以我从中得到的是,BotConnector处理ChannelData
的方式发生了变化。我怎样才能知道我究竟做错了什么?
添加了一个Gist求助https://gist.github.com/phaniav/cf03f8f62ee7c6dc891486d8df893794 – phani