Message By MetaData

To send custom data along with a message, you can use metaData param provided to all kinds of messages such as Text, Image, audio, video & document.

Text message#

To send your text message, you need to pass the TextMessage object as an argument to the parameter in the sendTextMessage() method.

    var textMessage = TextMessage()
    textMessage.toId = TO_JID
    textMessage.messageText = MESSAGE
    textMessage.replyMessageId = REPLY_MESSAGE_ID // Optional
    textMessage.mentionedUsersIds = MENTION_IDS // Optional
    textMessage.metaData = META_DATA // Optional
    FlyMessenger.sendTextMessage(messageParams: textMessage) { isSuccess, error, chatMessage in
    if (isSuccess) {
    //you can add this message object to your arraylist,
    //then you can notify the tableview
    }
    }
    ArgumentTypeDescription
    MESSAGE_PARAMSTextMessageObject to hold the parameters of the text message
    CALLBACKFlySendMessageListenercallback to observe the action status

    Image message#

    To send your image message, you need to pass the FileMessage object with FileMessageParams set as an argument to the parameter in the sendFileMessage() method.

      var fileMessageParams = FileMessageParams()
      fileMessageParams.fileUrl = FILE_URL
      fileMessageParams.fileName = FILE_NAME
      fileMessageParams.fileSize = FILE_SIZE
      fileMessageParams.thumbImage = THUMB_IMAGE
      fileMessageParams.caption = CAPTION
      fileMessageParams.fileKey = FILE_KEY
      var fileMessage = FileMessage()
      fileMessage.toId = TO_JID
      fileMessage.messageType = MessageType.image
      fileMessage.fileMessage = fileMessageParams
      fileMessage.replyMessageId = REPLY_MESSAGE_ID // Optional
      fileMessage.mentionedUsersIds = MENTION_IDS // Optional
      fileMessage.metaData = META_DATA // Optional
      FlyMessenger.sendFileMessage(messageParams: fileMessage){ isSuccess,error,message in
      if (isSuccess) {
      //you can add this message object to your arraylist,
      //then you can notify the tableview
      }
      }
      ArgumentTypeDescription
      MESSAGE_PARAMSFileMessageObject to hold the parameters of the image message
      CALLBACKFlySendMessageListenercallback to observe the action status

      To get the metadata of an image file for sending images make use of the utility methods MediaUtils.getAssetsImageInfo() and MediaUtils.compressImage()

      caution

      If Image attachment feature unavailable for your plan then it will throw 403 exception.

      Audio message#

      To send your audio message, you need to pass the FileMessage object with FileMessageParams set as an argument to the parameter in the sendFileMessage() method.

        var fileMessageParams = FileMessageParams()
        fileMessageParams.fileUrl = FILE_URL
        fileMessageParams.fileName = FILE_NAME
        fileMessageParams.fileSize = FILE_SIZE
        fileMessageParams.thumbImage = THUMB_IMAGE
        fileMessageParams.duration = DURATION
        fileMessageParams.caption = CAPTION
        fileMessageParams.fileKey = FILE_KEY
        var fileMessage = FileMessage()
        fileMessage.toId = TO_JID
        fileMessage.messageType = MessageType.audio
        fileMessage.fileMessage = fileMessageParams
        fileMessage.replyMessageId = REPLY_MESSAGE_ID // Optional
        fileMessage.mentionedUsersIds = MENTION_IDS // Optional
        fileMessage.metaData = META_DATA // Optional
        FlyMessenger.sendFileMessage(messageParams: fileMessage){ isSuccess,error,message in
        if (isSuccess) {
        //you can add this message object to your arraylist,
        //then you can notify the tableview
        }
        }
        ArgumentTypeDescription
        MESSAGE_PARAMSFileMessageObject to hold the parameters of the audio message
        listenerFlySendMessageListenercallback to observe the action status

        To get the metadata of an audio file for sending audio make use of the utility method MediaUtils.processAudio()

        caution

        If Audio attachment feature unavailable for your plan then it will throw 403 exception.

        Video message#

        To send your video message, you need to pass the FileMessage object with FileMessageParams set as an argument to the parameter in the sendFileMessage() method.

          var fileMessageParams = FileMessageParams()
          fileMessageParams.fileUrl = FILE_URL
          fileMessageParams.fileName = FILE_NAME
          fileMessageParams.fileSize = FILE_SIZE
          fileMessageParams.duration = DURATION
          fileMessageParams.thumbImage = THUMB_IMAGE
          fileMessageParams.caption = CAPTION
          fileMessageParams.fileKey = FILE_KEY
          var fileMessage = FileMessage()
          fileMessage.toId = TO_JID
          fileMessage.messageType = MessageType.video
          fileMessage.fileMessage = fileMessageParams
          fileMessage.replyMessageId = REPLY_MESSAGE_ID // Optional
          fileMessage.mentionedUsersIds = MENTION_IDS // Optional
          fileMessage.metaData = META_DATA // Optional
          FlyMessenger.sendFileMessage(messageParams: fileMessage){ isSuccess,error,message in
          if (isSuccess) {
          //you can add this message object to your arraylist,
          //then you can notify the tableview
          }
          }
          ArgumentTypeDescription
          MESSAGE_PARAMSFileMessageObject to hold the parameters of the video message
          LISTENERFlySendMessageListenercallback to observe the action status

          To get the metadata of a video file for sending videos make use of the utility methods MediaUtils.processVideo() and MediaUtils.compressVideo()

          caution

          If Video attachment feature unavailable for your plan then it will throw 403 exception.

          Document message#

          To send your document message, you need to pass the FileMessage object with FileMessageParams set as an argument to the parameter in the sendFileMessage() method.

            var fileMessageParams = FileMessageParams()
            fileMessageParams.fileUrl = FILE_URL
            fileMessageParams.fileName = FILE_NAME
            var fileMessage = FileMessage()
            fileMessage.toId = TO_JID
            fileMessage.messageType = MessageType.document
            fileMessage.fileMessage = fileMessageParams
            fileMessage.replyMessageId = REPLY_MESSAGE_ID // Optional
            fileMessage.mentionedUsersIds = MENTION_IDS // Optional
            fileMessage.metaData = META_DATA // Optional
            FlyMessenger.sendFileMessage(messageParams: fileMessage){ isSuccess,error,message in
            if (isSuccess) {
            //you can add this message object to your arraylist,
            //then you can notify the tableview
            }
            }
            ArgumentTypeDescription
            MESSAGE_PARAMSFileMessageObject to hold the parameters of the document message
            CALLBACKFlySendMessageListenercallback to observe the action status
            caution

            If Document attachment feature unavailable for your plan then it will throw 403 exception.

            Location message#

            To send your location message, you need to pass the FileMessage object with LocationMessageParams set as an argument to the parameter in the sendFileMessage() method.

              var locationMessageParams = LocationMessageParams()
              locationMessageParams.latitude = LATITUDE
              locationMessageParams.longitude = LONGITUDE
              var fileMessage = FileMessage()
              fileMessage.toId = TO_JID
              fileMessage.messageType = MessageType.location
              fileMessage.locationMessage = locationMessageParams
              fileMessage.replyMessageId = REPLY_MESSAGE_ID // Optional
              fileMessage.mentionedUsersIds = MENTION_IDS // Optional
              fileMessage.metaData = META_DATA // Optional
              FlyMessenger.sendFileMessage(messageParams: fileMessage){ isSuccess,error,message in
              if (isSuccess) {
              //you can add this message object to your arraylist,
              //then you can notify the tableview
              }
              }
              ArgumentTypeDescription
              MESSAGE_PARAMSFileMessageObject to hold the parameters of the location message
              CALLBACKFlySendMessageListenercallback to observe the action status
              caution

              If Location attachment feature unavailable for your plan then it will throw 403 exception.

              Contact message#

              To send your contact message, you need to pass the FileMessage object with ContactMessageParams set as an argument to the parameter in the sendFileMessage() method.

                var contactMessageParam = ContactMessageParams()
                contactMessageParam.name = CONTACT_NAME
                contactMessageParam.numbers = CONTACT_NUMBERS
                var fileMessage = FileMessage()
                fileMessage.toId = TO_JID
                fileMessage.messageType = MessageType.contact
                fileMessage.contactMessage = contactMessageParam
                fileMessage.replyMessageId = REPLY_MESSAGE_ID // Optional
                fileMessage.mentionedUsersIds = MENTION_IDS // Optional
                fileMessage.metaData = META_DATA // Optional
                FlyMessenger.sendFileMessage(messageParams: fileMessage){ isSuccess,error,message in
                if (isSuccess) {
                //you can add this message object to your arraylist,
                //then you can notify the tableview
                }
                }
                ArgumentTypeDescription
                MESSAGE_PARAMSFileMessageObject to hold the parameters of the contact message
                CALLBACKFlySendMessageListenercallback to observe the action status
                caution

                If Contact attachment feature unavailable for your plan then it will throw 403 exception.

                Meet message#

                To send your Meet message, you need to pass the MeetMessage as an argument to the parameter in the sendMeetMessage() method.

                  var meetMessage = MeetMessage()
                  meetMessage.toId = TO_JID
                  meetMessage.link = MEET_LINK
                  meetMessage.scheduledDateTime = SCHEDULED_TIME
                  meetMessage.title = TITLE // Optional
                  meetMessage.replyMessageId = REPLY_MESSAGE_ID // Optional
                  meetMessage.mentionedUsersIds = MENTION_IDS // Optional
                  meetMessage.metaData = META_DATA // Optional
                  meetMessage.topicID = TOPIC_ID // Optional
                  FlyMessenger.sendMeetMessage(messageParams: meetMessage){ isSuccess,error,message in
                  if (isSuccess) {
                  //you can add this message object to your arraylist,
                  //then you can notify the tableview
                  }
                  }
                  ArgumentTypeDescription
                  MESSAGE_PARAMSMeetMessageObject to hold the parameters of the meet message
                  CALLBACKFlySendMessageListenercallback to observe the action status

                  Send Reply message#

                  To send reply message to the original message, you need to pass the additional parameter original message-id in replyMessageId. TextMessage object as an argument to the parameter in the sendTextMessage()

                    var textMessage = TextMessage()
                    textMessage.toId = TO_JID
                    textMessage.messageText = MESSAGE
                    textMessage.replyMessageId = REPLY_MESSAGE_ID // Optional
                    textMessage.mentionedUsersIds = MENTION_IDS // Optional
                    textMessage.metaData = META_DATA // Optional
                    FlyMessenger.sendTextMessage(messageParams: textMessage) { isSuccess, error, chatMessage in
                    if (isSuccess) {
                    //you can add this message object to your arraylist,
                    //then you can notify the tableview
                    }
                    }
                    ArgumentTypeDescription
                    MESSAGE_PARAMSTextMessageObject to hold the parameters of the text message
                    CALLBACKFlySendMessageListenercallback to observe the action status

                    Receive Message#

                    To receive a metaData related message from another user you must implement the messageListener function. It’s a function that will be triggered whenever you receive a new message or related event in the chat.

                      func onMessageReceived(message : ChatMessage, chatJid: String) {
                      }
                      info

                      To learn more on message listener callbacks, see the Message Events Delegate.