Microsoft Bot Framework渠道集成:更多端点?

时间:2018-01-22 15:39:42

标签: rest api botframework chatbot

我使用频道注册产品和REST API使用Microsoft Bot Framework。我已经设置了#34;消息传递端点"一切都可以正常发送和接收消息。

但我不想发送/接收消息。设置欢迎消息这样简单的事情似乎是不可能的,因为我的端点只接收消息传递事件(当机器人在频道/会话中时)。

我有什么遗漏的吗?

我想设置几个端点,或者使用相同的端点来监听其他类型的事件。

1 个答案:

答案 0 :(得分:0)

您需要在MessageController中实现以下内容: 注意其他如果。控制器中的函数是HandleSystemMessage。

else if(message.Type == ActivityTypes.ConversationUpdate)             {

            // Handle conversation state changes, like members being added and removed
            // Use Activity.MembersAdded and Activity.MembersRemoved and Activity.Action for info
            // Not available in all channels
            IConversationUpdateActivity update = message;
            var cliente = new ConnectorClient(new System.Uri(message.ServiceUrl), new MicrosoftAppCredentials());

            if (update.MembersAdded != null && update.MembersAdded.Count > 0)
            {
                foreach(var member in update.MembersAdded)
                {
                    if(member.Id != message.Recipient.Id)
                    {
                        //var username = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                        var username = message.From.Name;
                        var reply = message.CreateReply();
                        //string dir = System.AppDomain.CurrentDomain.BaseDirectory + "Images" + Path.DirectorySeparatorChar + "cajamar.png";
                        string dir = HttpRuntime.AppDomainAppPath + "Images" + Path.DirectorySeparatorChar + "cajamar.png";

                        reply.Attachments.Add(new Attachment(
                                contentUrl: dir,
                                contentType: "image/png",
                                name: "cajamar.png"
                            ));
                        reply.Text = $"Bienvenido {username} al ChatBot de convenios:";
                        cliente.Conversations.ReplyToActivity(reply);
                        //var reply = message.CreateReply();

                        //reply.Text = $"El directorio base es: {HttpRuntime.AppDomainAppPath}";
                        //cliente.Conversations.ReplyToActivityAsync(reply);
                    }
                }
            }
        }