Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The contactJoin API allows to join as an participant to an existing chat room usually started by the customer on the corporate web site. Chat room ID and a nickname must be specified as input parameters.

The function returns a javascript Promise with the instance of the chat contact. On the chat object it is possible to register custom callbacks to receive notifications of the following events:

  • message : event that notifies the receiving of a text message from a participant

  • messageReceived : event that notifies that a participant has received the message

  • messageSeen : event that notifies that a participant has read/seen the message

  • multimediaMessage : a multimedia message has been received. There are two available types of multimedia message: DOCUMENT (doc, docx, ppt, pptx, xls, xlsx, pdf) or IMAGE (PNG, JPG, JPEG). The multimedia content is encoded in Base64 format.

  • link : an hyperlink has been received

  • isWriting : event that notifies that one participant started/stopped writing

  • contactEnded : the chat has just ended and all participants have been disconnected. The room chat ID is no longer active.

  • multimediaMessageStored :

Code Block
languagejs
LIVECHATSDK.LIVECHAT.joinContact("CHAT_eaa2e7c0-9c26-40db-b720-d777ab68078d", "John Doe").then(
  function (contact) {
    console.log("[CTLive] Contact JOINED", contact);

    // Bind 'message' event custom callback
    contact.on("message", 
      function (event) {
        var DOMObj = null;
        console.log("[CTLIVE] On [message] event");
        console.log("Nickname......" + event.content.user.nickname);
        console.log("Text.........." + event.content.text);
        console.log("Is Agent......" + event.content.user.isAgent);
        console.log("Msg ID........" + event.id);
      }
    );

    // Bind 'message' event custom callback
    contact.on("messageReceived", 
      function (event) {
        console.log("[CTLIVE] On [messageReceived] event");
        console.log("Msg ID........" + event.messageID);
      }
    );

    // Bind 'messageSeen' event custom callback
    contact.on("messageSeen", 
      function (event) {
        console.log("[CTLIVE] On [messageSeen] event");
        console.log("Msg ID........" + event.messageID);
      }
    );

    // Bind 'multimediaMessage' event custom callback
    contact.on("multimediaMessage", 
      function (event) {
        console.log("[CTLIVE] On [multimediaMessage] event");
        if ( event.messageType === "IMAGE" ) {
          console.log("Caption............" + event.content.caption);
          console.log("Is Agent..........." + event.content.user.isAgent);
          console.log("User Nickname......" + event.content.user.nickname);
          console.log("User ID............" + event.content.user.id);
          console.log("Chat ID............" + contact.contact.id);
          console.log("Msg ID............." + event.id)
          console.log("Content (Base64)..." + event.content.img);
        }

        if ( event.messageType === "DOCUMENT" ) {
          console.log("File Extension.....", event.content.documentType);
          // PDF, DOC; DOCX, PPT, PPTX, XLS, XLSX
          console.log("File Caption.......", event.content.caption);
          console.log("Is Agent..........." + event.content.user.isAgent);
          console.log("User Nickname......" + event.content.user.nickname);
          console.log("User ID............" + event.content.user.id);
          console.log("Chat ID............" + contact.contact.id);
          console.log("Msg ID............." + event.id)
          console.log("Content (Base64)..." + event.content.document);
        }
      }
    );

    // Bind 'link' event custom callback
    contact.on("link", 
      function (event) {
        console.log("[CTLIVE] On [link] event");
        console.log("URL................", event.content.url);
        console.log("Is Agent..........." + event.content.user.isAgent);
        console.log("User Nickname......" + event.content.user.nickname);
        console.log("User ID............" + event.content.user.id);
        console.log("Chat ID............" + contact.contact.id);
        console.log("Msg ID............." + event.id)
      }
    );

    // Bind 'isWriting' event custom callback
    contact.on("isWriting",
      function (event) {
        console.log("[CTLIVE] On [isWriting] event");
        console.log("Started/Stopped writing........", event.bwrite);
      }
    );

    // Bind 'contactEnded' event custom callback
    contact.on("contactEnded",
      function (event) {
        console.log("[CTLIVE] On [contactEnded] event");
      }
    );

    // Bind 'userAdded' event custom callback
    contact.on("userAdded",
      function (event) {
        console.log("[CTLIVE] On [userAdded] event");
      }
    );
  }
);