Search code examples
javascriptquickblox

Quickblox one to one chat history not working


I am using Javascript SDK for 1-1 chat in Quickblox, but somehow I am not able to store the chat history.

I am following this link.

var message = {
    body: text,
    type: 'chat',
    extension: {
        nick: chatUser.email,
        // token from session is set on window object
        token: window.token,
        // MyChat is a custom class_name
        class_name: 'MyChat'

    }
};

I am passing the class_name and token since I saw the android sdk following the same pattern.

private Message createMsgWithAdditionalInfo(int userId, String body,     Map<?, ?> addinfoParams){
    Message message = new Message(QBChatUtils.getChatLoginFull(userId), Message.Type.chat);
    String addInfo = ToStringHelper.toString(addinfoParams, "",  Consts.ESCAPED_AMPERSAND);
//
    MessageExtension messageExtension = new MessageExtension(Consts.QB_INFO, "");
    try {
        messageExtension.setValue("token", QBAuth.getBaseService().getToken());
        messageExtension.setValue("class_name", "ChatMessage");
        messageExtension.setValue("additional", addInfo);
    } catch (BaseServiceException e) {
        e.printStackTrace();
    }
    message.addExtension(messageExtension);
    message.setBody(body);
       return message;
    }

Also in instructions I see this.

<message id="123" type="chat" to="291-92@chat.quickblox.com" from="292-92@chat.quickblox.com"><body>Hi there</body><quickblox xmlns=""><token>848d4bf336d99532deff6bf7c8bb4b7e7b1a71f9</token><class_name>ChatMessage</class_name></quickblox></message>

Here also I see token & class passed so I am guessing how to I structure in my message object so that I get it to work.

The way I have created chatService is this.

chatService = new QBChat(params);
// to send message I am using sendMessage function 
// message object is same as defined above.
chatService.sendMessage(recipientID, message);

Solution

  • This is an old and deprecated method to store chat history

    Look at this guide http://quickblox.com/developers/Chat#Server-side_chat_history

      var msg = {
        body: "Hey",
        extension: {
          save_to_history: 1
        },
        senderId: currentUser.id, 
      };
    

    You have to use 'save_to_history' to store a message

    You can use this branch as a basis https://github.com/QuickBlox/quickblox-javascript-sdk/tree/develop.chat/samples/chat