TapTalk.io Documentation
  • Introduction
  • OneTalk Omnichannel Documentation
    • Getting Started with OneTalk
      • Team Members
      • Add Topic
      • Assign Agent to Topic
      • Paid Proactive Chat
    • Channel Integration
      • Telegram Integration
      • WhatsApp SME Integration
      • Instagram DM Integration
      • Facebook Messenger Integration
      • Live Chat Integration (iOS, Android, Web)
        • OneTalk Live Chat for Android
          • Get Started
          • Event Listener
          • Authentication
          • Case & Topic
          • Navigate Live Chat UI
          • Customize UI Appearance
        • OneTalk Live Chat for iOS
          • Get Started
          • Background Process in TapTalk.io Omnichannel iOS
          • Event Delegate
          • Authentication
          • Case & Topic
          • Navigate Live Chat UI
          • Customize UI Appearance
        • OneTalk Live Chat for Web
          • Get Started
          • Callback
          • Method
        • OneTalk Live Chat for React Native
          • Get Started - Android
          • Authentication - Android
          • Get Started - iOS
          • Authentication - iOS
        • OneTalk Live Chat for Flutter
          • Get Started - Android
          • Get Started - iOS
      • Google Business Messages Integration
      • Google Business Profile Integration
      • Tokopedia Integration
    • Integration API
      • Inbox API
      • User/Contact API
    • Live Chat Widget Callback Function
    • Social Channel Button
    • Custom Chatbot Integration
      • Get Started
      • Edit or Delete Chatbot
      • Development
    • QnA via API
    • Webhook
  • PowerTalk Chat SDK Documentation
    • Getting Started with PowerTalk
    • PowerTalk Android
      • Get Started
      • Enable Chat Features
      • Authentication
      • TapUI and TapCore
      • Background Process in TapTalk.io
      • Connection
      • Event Listener
      • Push Notification
      • General
      • User
      • Room List
        • Room List - TapUI
        • Room List - TapCore
      • Chat Room and Messages
        • Chat Room and Messages - TapUI
        • Chat Room and Messages - TapCore
      • Contact
      • Message Type
      • Customize UI Appearance
      • Customize Chat Features
      • Customize Chat Message Bubble
      • Customize Navigation Bar
      • Deep Linking
      • Error Codes
    • PowerTalk iOS
      • Get Started
      • TapUI and TapCore
      • Background Process in TapTalk.io
      • Implement Application Delegate
      • Authentication
      • Connection
      • Event Delegate
      • Push Notification
      • General
      • User
      • Room List
        • Room List - TapUI
        • Room List - TapCore
      • Chat Room and Messages
        • Chat Room and Messages - TapUI
        • Chat Room and Messages - TapCore
      • Contact
      • Message Type
      • Customize UI Appearance
      • Customize Chat Features
      • Customize Chat Message Bubble
      • Customize Navigation Bar
      • Deep Linking
      • Error Codes
    • PowerTalk React Native
      • Get Started - Android
      • Get Started - iOS
    • PowerTalk Flutter
      • Get Started - Android
      • Get Started - iOS
    • Javascript SDK
      • Get Started
      • Authentication
      • Connection
      • General
      • Event Listener
      • User
      • Room List
      • Chat Room
      • Messages
      • Contact
      • Message Type
    • Server API
      • Get Started
      • Base URL
      • Authentication
      • User
      • Contact
      • Message
      • Room
    • Webhook
      • Get Started
      • Webhook Payload
  • MeetTalk SDK Documentation
    • Getting Started with MeetTalk
    • MeetTalk Android
      • Get Started
      • Event Listener
    • MeetTalk iOS
      • Get Started
      • Implement Application Delegate
      • Event Delegate
  • SendTalk API Documentation
    • Introduction
    • Whatsapp Verification
Powered by GitBook
On this page
  • DeleteMessage
  • SendTextMessage
  • SendImageMessage
  • SendVideoMessage
  • SendFileMessage
  • SendLocationMessage
  • SendVoiceMessage
  • SendLinkMessage
  • Send Forwarded Messages
  • Send Forwarded Messages to Multiple Rooms
  • ConstructTapTalkMessageModel
  • ConstructTapTalkMessageModelWithQuote
  • SendCustomMessage
  • Edit Message
  • SearchLocalRoomMessageWithKeyword
  • SearchLocalMessageWithKeyword
  • StarMessage
  • UnstarMessage
  • GetStarredMessageIds
  • FetchStarredMessages
  • FetchSharedContentMessages
  • FetchPinnedMessages
  • GetPinnedMessageIds
  • PinMessage
  • UnpinMessage
  • Download Message File
  • Mark Message as Read
  • Mark Message as Delivered
  • Get Older Messages from Chat Room
  • Get Newer Messages from Chat Room
  • Get Total Read Count
  • Fetch Message Info

Was this helpful?

  1. PowerTalk Chat SDK Documentation
  2. Javascript SDK

Messages

You can use the methods from the TapCoreMessageManager class to manage chat messages.

Method Name
Description

Send a new text message to the selected chat room.

Send a new image message to the selected chat room.

Send a new video message to the selected chat room.

Send a new file message to the selected chat room.

Send a new message with location to the selected chat room.

Send a new voice message to the selected chat room.

Send a new link message to the selected chat room.

Forward an existing message to the selected chat room.

Construct a customized TapTalk.io message model.

Send a new custom message to the room defined in the message model.

Edit the contents of the selected message

Call this method to search messages from the device's local storage with a keyword

Set message as starred or remove star from message for the active user.

Retrieve list of messages marked as starred in a chat room.

Set message as pinned or remove pin from message for all room participants.

Retrieve list of pinned messages in a chat room.

Retrieve image, video, file, and link messages from a chat room.

Start a file download from the selected file, image, or video message.

Mark message as read by the active user.

Mark message as delivered by the active user.

Retrieve messages that are older than the provided timestamp from the server to the selected chat room.

Retrieve newer messages from the server to the selected chat room

Retrieve existing media messages from a chat room

DeleteMessage

tapCoreMessageManager.markMessageAsDeleted(
    ROOM_ID, 
    MESSAGE_IDs, 
    FOR_EVERYONE
);

ROOM_ID: (String) room ID value MESSAGE_IDs: (Arrray) array of messageID FOR_EVERYONE: (boolean) message model of message you want to quoted

SendTextMessage

tapCoreMessageManager.sendTextMessage(
    MESSAGE_BODY, 
    ROOM, 
    (message) => {
        // do action here
    },
    QUOTED_MESSAGE, 
    FORWARD_MESSAGE, 
    FORWARD_ONLY, 
    QUOTE_TITLE
);

MESSAGE_BODY: (String) message body for message model ROOM: (Object) room model for message model QUOTED_MESSAGE: (Object) message model of message you want to quoted FORWARD_MESSAGE: (Object) message model of message you want to forward FORWARD_ONLY: (boolean) set to true when you only need to forward an existing message without sending a new message QUOTE_TITLE: (String) custom text for message.quote.title

SendImageMessage

tapCoreMessageManager.sendImageMessage(
    FILE, 
    CAPTION, 
    ROOM, 
    {
      onStart: (message) => {
          // Message model was generated
      },
      onProgress: (localID, percentage, bytes) => {
          // File upload progress
      },
      onSuccess: (message) => {
          // do action here
      },
      onError: (errorCode, errorMessage) => {
          // do action here
      }
    }, 
    QUOTED_MESSAGE, 
    FORWARD_MESSAGE,
    FORWARD_ONLY,
    QUOTE_TITLE
);

FILE: (Object) the image file to be uploaded CAPTION: (String) the image's caption to be displayed in message bubble ROOM: (Object) room model for message model QUOTED_MESSAGE: (Object) message model of message you want to quoted FORWARD_MESSAGE: (Object) message model of message you want to forward FORWARD_ONLY: (boolean) set to true when you only need to forward an existing message without sending a new message QUOTE_TITLE: (String) custom text for message.quote.title

SendVideoMessage

tapCoreMessageManager.sendVideoMessage(
    FILE, 
    CAPTION, 
    ROOM, 
    {
      onStart: (message) => {
          // Message model was generated
      },
      onProgress: (localID, percentage, bytes) => {
          // File upload progress
      },
      onSuccess: (message) => {
          // do action here
      },
      onError: (errorCode, errorMessage) => {
          // do action here
      }
    }, 
    QUOTED_MESSAGE, 
    FORWARD_MESSAGE,
    FORWARD_ONLY,
    QUOTE_TITLE
);

FILE: (Object) the video file to be uploaded CAPTION: (String) the image's caption to be displayed in message bubble ROOM: (Object) room model for message model QUOTED_MESSAGE: (Object) message model of message you want to quoted FORWARD_MESSAGE: (Object) message model of message you want to forward FORWARD_ONLY: (boolean) set to true when you only need to forward an existing message without sending a new message QUOTE_TITLE: (String) custom text for message.quote.title

SendFileMessage

tapCoreMessageManager.sendFileMessage(
    FILE, 
    ROOM, 
    {
      onStart: (message) => {
          // Message model was generated
      },
      onProgress: (localID, percentage, bytes) => {
          // File upload progress
      },
      onSuccess: (message) => {
          // do action here
      },
      onError: (errorCode, errorMessage) => {
          // do action here
      }
    }, 
    QUOTED_MESSAGE, 
    FORWARD_MESSAGE,
    FORWARD_ONLY,
    QUOTE_TITLE
);

FILE: (Object) the file to be uploaded CAPTION: (String) the image's caption to be displayed in message bubble ROOM: (Object) room model for message model QUOTED_MESSAGE: (Object) message model of message you want to quoted FORWARD_MESSAGE: (Object) message model of message you want to forward FORWARD_ONLY: (boolean) set to true when you only need to forward an existing message without sending a new message QUOTE_TITLE: (String) custom text for message.quote.title

SendLocationMessage

tapCoreMessageManager.sendLocationMessage(
    LATITUDE,
    LONGITUDE,
    ADDRESS, 
    ROOM, 
    (message) => {
        // do action here
    },
    QUOTED_MESSAGE, 
    FORWARD_MESSAGE, 
    FORWARD_ONLY, 
    QUOTE_TITLE
);

LATITUDE: (Number) latitude of the shared location LONGITUDE: (Number) longitude of the shared location ADDRESS: (String) text data containing the location address ROOM: (Object) room model for message model QUOTED_MESSAGE: (Object) message model of message you want to quoted FORWARD_MESSAGE: (Object) message model of message you want to forward FORWARD_ONLY: (boolean) set to true when you only need to forward an existing message without sending a new message QUOTE_TITLE: (String) custom text for message.quote.title

SendVoiceMessage

tapCoreMessageManager.sendVoiceMessage(
    FILE, 
    DURATION, 
    ROOM, 
    {
      onStart: (message) => {
          // Message model was generated
      },
      onProgress: (localID, percentage, bytes) => {
          // File upload progress
      },
      onSuccess: (message) => {
          // do action here
      },
      onError: (errorCode, errorMessage) => {
          // do action here
      }
    }, 
    QUOTED_MESSAGE, 
    FORWARD_MESSAGE,
    FORWARD_ONLY,
    QUOTE_TITLE
);

FILE: (Object) the voice note file to be uploaded DURATION: (Number) the playback duration of the voice note file ROOM: (Object) room model for message model QUOTED_MESSAGE: (Object) message model of message you want to quoted FORWARD_MESSAGE: (Object) message model of message you want to forward FORWARD_ONLY: (boolean) set to true when you only need to forward an existing message without sending a new message QUOTE_TITLE: (String) custom text for message.quote.title

SendLinkMessage

tapCoreMessageManager.sendLinkMessage(
    MESSAGE_BODY, 
    ROOM, 
    (message) => {
        // do action here
    },
    URLS,
    TITLE,
    DESCRIPTION,
    IMAGE,
    SITE_NAME,
    TYPE,
    QUOTED_MESSAGE, 
    FORWARD_MESSAGE, 
    FORWARD_ONLY, 
    QUOTE_TITLE
);

MESSAGE_BODY: (String) message body for message model ROOM: (Object) room model for message model URLS: (NSArray<String>) list of URLs contained in the message TITLE: (String) og:title metadata of the specified URL DESCRIPTION: (String) og:description metadata of the specified URL IMAGE: (String) og:image metadata of the specified URL SITE_NAME: (String) og:site_name metadata of the specified URL TYPE: (String) og:type metadata of the specified URL QUOTED_MESSAGE: (Object) message model of message you want to quoted FORWARD_MESSAGE: (Object) message model of message you want to forward FORWARD_ONLY: (boolean) set to true when you only need to forward an existing message without sending a new message QUOTE_TITLE: (String) custom text for message.quote.title

Send Forwarded Messages

To send a forwarded message to a chat room, use the sendForwardMessage() method from the TapCoreMessageManager class.

tapCoreMessageManager.sendForwardMessage(ROOM_MODEL, (message) => {
   // do action here
}, FORWARD_MESSAGES)

Parameters ROOM_MODEL: (TAPRoomModel) the destination room where the message will be sent CALLBACK: (Method) callback method FORWARD_MESSAGES: (Array) array of forward messages

Send Forwarded Messages to Multiple Rooms

To send multiple forwarded message to multiple chat room, use the sendForwardMessagesOnMultipleRooms() method from the TapCoreMessageManager class.

let DATA = [{
   room: {
      ...ROOM_MODEL
   },
   messages: [
      {
         ...MESSAGE_MODEL
      }
   ]
}]

tapCoreMessageManager.sendForwardMessagesOnMultipleRooms(DATA, (message) => {
   // do action here
})

Parameters DATA: (Array) array of room and forward messages CALLBACK: (Method) callback method

ConstructTapTalkMessageModel

tapCoreMessageManager.constructTapTalkMessageModel(MESSAGE_BODY, ROOM, MESSAGE_TYPE, MESSAGE_DATA, LOCAL_ID = null, forwardMessage = false);

MESSAGE_BODY: (String) message body for message model ROOM: (Object) room model for message model MESSAGE_TYPE: (Number) message type for message model MESSAGE_DATA: (Object) data object for message model LOCAL_ID: (String) custom value for preference local id default is null FORWARD_MESSAGE: (Object) message model of message you want to forward

ConstructTapTalkMessageModelWithQuote

tapCoreMessageManager.constructTapTalkMessageModelWithQuote(MESSAGE_BODY, ROOM, MESSAGE_TYPE, MESSAGE_DATA, QUOTED_MESSAGE = false, LOCAL_ID = null, QUOTE_TITLE= false, QUOTE_CONTENT = false, QUOTED_IMAGE_URL = false);

MESSAGE_BODY: (String) message body for message model ROOM: (Object) room model for message model MESSAGE_TYPE: (Number) message type for message model MESSAGE_DATA: (Object) data object for message model LOCAL_ID: (String) custom value for preference local id default is null QUOTED_MESSAGE: (Object) message model of message you want to quoted QUOTE_TITLE: (String) title for your quoted message default is false QUOTE_CONTENT: (String) content for your quoted message default is false QUOTED_IMAGE_URL: (String) image url for your quoted message default is false

SendCustomMessage

tapCoreMessageManager.sendCustomMessage(MESSAGE_MODEL, (message) => {
    // do action here
});

MESSAGE_MODEL: (Object) message model for your message

Edit Message

To edit amessage in a chat room, use the sendEmitWithEditedMessage() method from the TapCoreMessageManager class.

tapCoreMessageManager.sendEmitWithEditedMessage(MESSAGE, NEW_MESSAGE, (message) => {
   // do action here
})

Parameters MESSAGE: (Object) message model of the edit message NEW_MESSAGE: (String) new message value CALLBACK: (Method) callback method

SearchLocalRoomMessageWithKeyword

Call this method to search messages from the chat room with a keyword.

tapCoreMessageManager.searchLocalRoomMessageWithKeyword(KEYWORD, ROOM_ID, {
 onSuccess: (response) => {
   // do action here
 }, 
 onError: (message) => {
   // do action here
 }
});

KEYWORD: (String) message keyword ROOM_ID: (number) room id CALLBACK: (Object) callback method

SearchLocalMessageWithKeyword

Call this method to search messages from all chat room with a keyword.

tapCoreMessageManager.searchLocalMessageWithKeyword(KEYWORD, {
 onSuccess: (response) => {
   // do action here
 }, 
 onError: (message) => {
   // do action here
 }
});

KEYWORD: (String) message keyword CALLBACK: (Object) callback method

StarMessage

You may use these methods to mark a message or multiple messages as starred.

tapCoreMessageManager.starMessage(ROOM_ID, MESSAGE_IDs, {
    onSuccess: (res) => {
        // do action here
    },
    onError: (errCode, errMessage) => {
        // do action here
    }
);

ROOM_ID: (Number) room id MESSAGE_IDs: (Array) array of message id CALLBACK: (Object) object of callback methods

UnstarMessage

You may use these methods to remove messages from the starred list.

tapCoreMessageManager.unstarMessage(ROOM_ID, MESSAGE_IDs, {
    onSuccess: (res) => {
        // do action here
    },
    onError: (errCode, errMessage) => {
        // do action here
    }
);

ROOM_ID: (Number) room id MESSAGE_IDs: (Array) array of message id CALLBACK: (Object) object of callback methods

GetStarredMessageIds

You can use the method below get a list of message IDs marked as starred by the user.

tapCoreMessageManager.getStarredMessageIds(roomID, {
    onSuccess: (res) => {
        // do action here
    },
    onError: (errCode, errMessage) => {
        // do action here
    }
});

ROOM_ID: (Number) room id CALLBACK: (Object) object of callback methods

FetchStarredMessages

You can use the method below get a list of message IDs marked as starred by the user.

tapCoreMessageManager.fetchStarredMessages(ROOM_ID, {
    onSuccess: (res) => {
        // do action here
    },
    onError: (errCode, errMessage) => {
        // do action here
    }
});

ROOM_ID: (Number) room id CALLBACK: (Object) object of callback methods

FetchSharedContentMessages

You may use this method to fetch shared content messages from the server. This currently includes image, video, file, and link messages.

tapCoreMessageManager.fetchSharedContentMessages(ROOM_ID MAX_CREATED, MIN_CREATED, SORT, {
    onSuccess: (mediasResponse, filesResponse, linksResponse) => {
        // do action here
    },
    onError: (errCode, errMessage) => {
        // do action here
    }
});

ROOM_ID: (Number) room id CALLBACK: (Object) object of callback methods MAX_CREATED: (Number) the highest created time of the shared content to be retrieved MIN_CREATED: (Number) the lowest created time of the shared content to be retrieved SORT: (String) sorting order (fill with "ASC" or "DESC"), default value is "ASC"

FetchPinnedMessages

You can fetch pinned messages list with this method below.

tapCoreChatRoomManager.fetchPinnedMessages(ROOM_ID, {
    onSuccess: (res) => {
        // do action here
    },
    onError: (errCode, errMessage) => {
        // do action here
    }
});

ROOM_ID: (Number) room id CALLBACK: (Object) object of callback methods

GetPinnedMessageIds

You can fetch all pinned messages ID list with this method below.

tapCoreChatRoomManager.getPinnedMessageIds(ROOM_ID, {
    onSuccess: (res) => {
        // do action here
    },
    onError: (errCode, errMessage) => {
        // do action here
    }
});

ROOM_ID: (Number) room id CALLBACK: (Object) object of callback methods

PinMessage

You can set pin messages with this method below.

tapCoreChatRoomManager.pinMessage(ROOM_ID, MESSAGES, {
    onSuccess: (res) => {
        // do action here
    },
    onError: (errCode, errMessage) => {
        // do action here
    }
});

ROOM_ID: (Number) room id MESSAGES: (Array) arrays of message model CALLBACK: (Object) object of callback methods

UnpinMessage

You can set pin messages with this method below.

tapCoreChatRoomManager.unpinMessage(ROOM_ID, MESSAGES_IDs, IS_UNPIN_ALL, {
    onSuccess: (res) => {
        // do action here
    },
    onError: (errCode, errMessage) => {
        // do action here
    }
});

ROOM_ID: (Number) room id MESSAGES_IDs: (Array) arrays of message ID IS_UNPIN_ALL: (Boolean) set true if unpin all message CALLBACK: (Object) object of callback methods

Download Message File

To start a file download from a File, Image, or Video message, you can use the downloadMessageFile() method.

tapCoreChatRoomManager.downloadMessageFile(messageModel, {
      onSuccess : (response) => {
         // do action here
      },
      onError: (errorCode, errorMessage) => {
         // do action here     
      }
})

Parameters

MESSAGE: (TAPMessageModel) pending message with ongoing file upload

Mark Message as Read

To manually mark a message as read, call the markMessageAsRead() method.

tapCoreMessageManager.markMessageAsRead(ARRAY_OF_MESSAGE_ID)

Parameters

ARRAY_OF_MESSAGE_ID: (TAPMessageModel) existing message to be marked as read

Mark Message as Delivered

To manually mark a message as delivered, call the markMessageAsDelivered() method.

tapCoreMessageManager.markMessageAsDelivered(ARRAY_OF_MESSAGE_ID)

Parameters

ARRAY_OF_MESSAGE_ID: (TAPMessageModel) existing message to be marked as read

Get Older Messages from Chat Room

To retrieve older messages in a chat room from the server, use the getOlderMessagesBeforeTimestamp() method.

tapCoreMessageManager.getOlderMessagesBeforeTimestamp(ROOM_ID, NUMBER_OF_ITEMS, {
   onSuccess: (messages, hasMore) => {
          // do action here
    },
    onError: (errorCode, errorMessage) => {
          // do action here
    }
})

Get Newer Messages from Chat Room

To retrieve newer messages in a chat room from the server, use the getNewerMessagesAfterTimestamp() method.

tapCoreMessageManager.getNewerMessagesAfterTimestamp(ROOM_ID, {
   onSuccess: (messages) => {
          // do action here
    },
    onError: (errorCode, errorMessage) => {
          // do action here
    }
})

Get Total Read Count

Get total read count of a message

tapCoreChatRoomManager.getTotalReadCount(MESSAGE_ID, {
      onSuccess : (response) => {
         // do action here
      },
      onError: (errorCode, errorMessage) => {
         // do action here     
      }
})

Parameters

MESSAGE_ID: (Number) message id CALLBACK: (Object) object of callback method

Fetch Message Info

Fetch message info (read by and delivere to).

tapCoreChatRoomManager.fetchMessageInfo(MESSAGE_ID, {
      onSuccess : (response) => {
         // do action here
      },
      onError: (errorCode, errorMessage) => {
         // do action here     
      }
})

Parameters

MESSAGE_ID: (Number) message id CALLBACK: (Object) object of callback method

PreviousChat RoomNextContact

Last updated 2 years ago

Was this helpful?

Send Text Message
Send Image Message
Send Video Message
Send File Message
Send Location Message
Send Voice Message
Send Link Message
Forward a Message
Construct Message Model
Send a Custom Message
Edit Message
Search Local Messages
Star/Unstar Message
Get Starred Messages
Pin/Unpin Message
Get Pinned Messages
Get Shared Content Messages
Download Message File
Mark Message as Read
Mark Message as Delivered
Get Older Messages from Chat Room
Get Newer Messages from Chat Room
Get Room Media