para net mensajes gratis enviar desde celular asp c# xamarin.ios quickblox

c# - mensajes - enviar sms gratis asp net



Cómo obtener el texto del mensaje desde la página de mensaje Xmpp usando Quickblox Xamarin nuget (2)

Usando Xamarin, instalé QuickBlox Nuget (1.2.7): https://www.nuget.org/packages/Quickblox.Sdk/

y usando este tutorial: http://quickblox.com/developers/Sample-chat-xamarin este tutorial probablemente esté desactualizado, ya que algunos de los fragmentos de código no funcionan de la caja y se necesitan algunos cambios en los nombres y funciones de las clases por hacer, pero es la mejor fuente que pude encontrar para Xamarin y QuicBlox.

Estoy tratando de enviar y recibir mensajes y tener algunas dificultades. Si bien puedo enviar mensajes con éxito y verlos en el historial de chat usando el panel de administración, no pude encontrar una manera de recibirlos con el texto del mensaje.

El mensaje recibido con ID de mensaje, ID de remitente, etc., pero el campo messageText siempre es nulo. Cuando uso getMessagesAsync para obtener el mensaje activamente (por su id o como parte del historial del diálogo de chat) recibo un mensaje con texto. Entonces, el texto está allí, se llama al evento pero el texto permanece nulo ...

Probé diferentes formas de enviar y recibir mensajes, usando:

Enviar mensajes : ambos funcionaron, el mensaje se envió y se puede ver usando el panel de administración:

1.

quickbloxClient.ChatXmppClient.SendMessage(...)

2.

privateChatManager.SendMessage (messageText);

Recibir mensajes : solo funciona el ChatXmppClient, el mensaje recibido con todos sus detalles, pero el campo de texto del mensaje es nulo:

1.

quickbloxClient.ChatXmppClient.MessageReceived += MessageReceived; public async void MessageReceived (object sender, MessageEventArgs messageEventArgs) { if (messageEventArgs.MessageType == Xmpp.Im.MessageType.Chat && messageEventArgs.Message != null) { var message = messageEventArgs.Message; // contains message''s details var text = messageEventArgs.Message.messageText; // null } } /// received (the event fired) with message details but without message text (null)

2.

privateChatManager.MessageReceived += MessageReceived; /// the event doesn''t get called

Cualquier ayuda sería apreciada.


Código de solución: envío -

var extraParamsList = new List<System.Xml.Linq.XElement> (); extraParamsList.Add (new System.Xml.Linq.XElement ((System.Xml.Linq.XName)"save_to_history", 1)); extraParamsList.Add (new System.Xml.Linq.XElement ((System.Xml.Linq.XName)"send_to_chat", 1)); extraParamsList.Add (new System.Xml.Linq.XElement ((System.Xml.Linq.XName)"message_text", messageTextEncoded)); var extraParams = new System.Xml.Linq.XElement ((System.Xml.Linq.XName)EXTRA_PARAMS, extraParamsList.ToArray ()); quickbloxClient.ChatXmppClient.SendMessage (recieverId, messageText, extraParams, dialogId, null, Xmpp.Im.MessageType.Chat);

Recepción -

var messageText = string.Empty; /// In case there are more needed fields foreach (var element in responseMessage.ExtraParameters.Elements ()) { var name = element.Name.LocalName; var value = element.Value; if (!string.IsNullOrWhiteSpace (name) && !string.IsNullOrWhiteSpace (value)) { switch (name) { case "message_text": messageText = value default: break; } } }


Sé que llego tarde para responder, pero espero que pueda ayudar a alguien más. Estaba enfrentando un problema similar con mi aplicación. Después de muchos esfuerzos, llegué a saber que había algo mal con Quickblox Nuget que estaba usando , que era 1.2.7 . Lo bajé a 1.2.2 en todos los proyectos (es decir, PCL, droide e ios) y luego reconstruí mi proyecto y el bingo. Funcionó