Пример #1
0
        public ActionResult ReceivePost(BotRequest data)
        {
            RequestService servicios = new RequestService();
            MensajesTexto  nuevo     = new Models.Acciones.MensajesTexto();

            Task.Factory.StartNew(() =>
            {
                foreach (var entry in data.entry)
                {
                    foreach (var message in entry.messaging)
                    {
                        if (string.IsNullOrWhiteSpace(message?.message?.text))
                        {
                            continue;
                        }
                        //var msg = "You said: " + message.message.text;
                        //var json = $@" {{recipient: {{  id: {message.sender.id}}},message: {{text: ""{msg + message.sender.id}"" }}}}";
                        //Acciones.PostRaw("https://graph.facebook.com/v3.0/me/messages?access_token=EAAF3NCI0yUQBAMx3ZCirrlZCuYDNoLaD092M4ncaZAYmu03C5Rku5tCPFLZBqmh2LEjD03u6fZAw3NtLhJLO7WEiJuHZCOFSmbEiZAR1DsiZAZBEWdQ9qizdz0HDJCQeH1wZBhG4HVxKddyTtyKxaMBSZCnoXeSCJY4AARmf6C1wmyIOAZDZD", json);

                        if (!ManejoDeInfo.Conectado(message.sender.id))
                        {
                            var respuesta      = DialogFlow.RequestManager.Query(new DialogFlow.Models.Request(new List <string>(), message.message.text, message.sender.id));
                            nuevo.message.text = respuesta.result.fulfillment.speech;
                            nuevo.recipient.id = respuesta.sessionId;
                            if (!respuesta.result.actionIncomplete)
                            {
                                ManejoDeInfo.VerificarRuta(message.sender.id);
                                string mensaje = ManejoDeInfo.RegistrarSolicitud(respuesta.result.parameters, message.sender.id);
                                var hubContext = GlobalHost.ConnectionManager.GetHubContext <ChatHub>();
                                string ruta    = ManejoDeInfo.ObtenerRuta(message.sender.id);
                                if (ChatHub.lista.Count > 0)
                                {
                                    UsuarioConectado jarcodeo = ChatHub.lista.FirstOrDefault(x => x.id == ruta);
                                    FbUser usuario            = Acciones.recuperarContacto(message.sender.id);
                                    hubContext.Clients.Client(jarcodeo.connectionId).recibirMensaje(mensaje, usuario.first_name + " " + usuario.last_name, message.sender.id);
                                }
                            }
                            Acciones.EnviarMensajeTextoAsync(nuevo);
                        }
                        else
                        {
                            if (message.message.text.ToUpper().Contains("DESCONECTAR"))
                            {
                                ManejoDeInfo.Desconectar(message.sender.id);
                            }
                            Task.Factory.StartNew(() =>
                            {
                                //servicios.LlamarPost<dynamic>("http://localhost:61627/api/Message/Mensaje", message);
                                var hubContext = GlobalHost.ConnectionManager.GetHubContext <ChatHub>();
                                string ruta    = ManejoDeInfo.ObtenerRuta(message.sender.id);
                                if (ChatHub.lista.Count > 0)
                                {
                                    UsuarioConectado jarcodeo = ChatHub.lista.FirstOrDefault(x => x.id == ruta);
                                    FbUser usuario            = Acciones.recuperarContacto(message.sender.id);
                                    hubContext.Clients.Client(jarcodeo.connectionId).recibirMensaje(message.message.text, usuario.first_name + " " + usuario.last_name, message.sender.id);
                                }
                            });
                        }
                    }
                }
            });

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
Пример #2
0
 public void DesconexionCliente(string idFacebook)
 {
     ManejoDeInfo.Desconectar(idFacebook);
 }