我已经尝试将ConversationUpdate
和ContactRelationUpdate
同时用于在MS Bot框架C#中为S4B通道创建并在混合环境中发布的机器人。
我希望机器人能够在没有用户首先发送消息的情况下发起对话,尽管我已经在Skype频道中实现了相同但S4B不会重现相同的行为。
这对我的团队来说是一个关键要求,下面的代码片段应该显示欢迎消息,将bot添加到联系人但似乎不起作用:
else if (activity.Type == ActivityTypes.ContactRelationUpdate) {
IContactRelationUpdateActivity contactupdate = activity;
var reply = activity.CreateReply();
using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, activity)) {
var client = scope.Resolve();
if (contactupdate.Action.Equals("add")) {
reply.Text = "Welcome";
await client.Conversations.ReplyToActivityAsync(reply);
}
}
}
答案 0 :(得分:1)
尝试从使用您的邮件服务URL实例化的新连接器发送回复邮件
switch (message.Type) {
//...
case ActivityTypes.ConversationUpdate:
ConnectorClient connector = new ConnectorClient(new Uri(message.ServiceUrl));
reply = message.CreateReply("proactiveMessage");
await connector.Conversations.ReplyToActivityAsync(reply);
break;
//...
}