我有一個機器人回覆僅包含附件的消息。當它在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