Messaging

If you need translation feature, see below.

1. Get Messages

// get channel messages
final messageParams = TPMessageRetrievalParams(channel: channel)
..lastMessage = lastMessage
..translationLanguage = translationLanguage;
    
await TalkPlusAPI.getTPMessages(messageParams, (tpMessages, hasNext) {
    ...
  if(hasNext){
    TPMessage last = tpMessages.last;
    ...
    return;
  }
  ...
}, errorCallback: (errorCode, errorMessage){

});

2. View Messages With File Upload

View messages with file attachment.

// get channel messages
final messageParams = TPMessageRetrievalParams(channel: channel)
..lastMessage = lastMessage
..orderBy = TPMessageOrderBy.TPOrderByLatest
..translationLanguage = translationLanguage;
    
await TalkPlusAPI.getTPFileMessages(messageParams, (tpMessages, hasNext) {
    ...
  if(hasNext){
    TPMessage last = tpMessages.last;
    ...
    return;
  }
  ...
}, errorCallback: (errorCode, errorMessage){

});

3. Send Message

Setting translationLanguages property in TPMessageSendParams object will return TPMessage objects with translated texts via ''success block (success closure). Message recipient will be able to check the message via "onMessageReceived" callback event.

  • TPMessageSendParams class is available starting from Flutter SDK v0.5.3.

final sendMessageParams = 
    TPMessageSendParams(contentType: TPMessageContentType.TPMessageContentText,
    messageType: TPMessageType.TPMessageText,
    channel: channel)
    
  ..textMessage = textMessage
  ..mentionUserIDs = mentionUserIDs
  ..parentMessageId = parentMessageId
  ..metaData = metaData
  ..fileUrl = fileUrl
  ..translationLanguages = translationLanguages;
      
// 메시지 발송
TPMessage? message = await TalkPlusAPI.sendTPMessage(
  sendMessageParams,
  errorCallback: (errorCode, errorMessage){}
);

4. Get Message

View a single message.

// get a single channel message
final messageParams = TPMessageRetrievalParams(channel: channel)
..messageId = messageId
..translationLanguage = translationLanguage;

await TalkPlusAPI.getTPMessage(params, (tpMessage) {

}, errorCallback: (errorCode, errorMessage){

})

5. Reply To Message

Reply to another message.

final sendMessageParams = 
    TPMessageSendParams(contentType: TPMessageContentType.TPMessageContentText,
    messageType: TPMessageType.TPMessageText,
    channel: channel)
        
  ..textMessage = "hello"
  ..parentMessageId = "anotherMessageIdThatIamReplyingTo"
  ..translationLanguages = translationLanguages;
      
// 메시지 발송
TPMessage? message = await TalkPlusAPI.sendTPMessage(
  sendMessageParams,
  errorCallback: (errorCode, errorMessage){}
);

6. Mark As Read

You can mark a channel as read.

TPChannel? channel = await TalkPlusAPI.markAsReadChannel(
    tpChannel,
    errorCallback: (errorCode, errorMessage){}
);

7. React To Message

You can add/remove reaction to a message.

// add reaction
TPMessage? newMessage = await TalkPlusAPI.addMessageReaction(
    tpMessage, 
    "happy",
    errorCallback: (errorCode, errorMessage){}
);

// remove reaction
TPMessage? newMessage = await TalkPlusAPI.removeMessageReaction(
    tpMessage, 
    "happy",
    errorCallback: (errorCode, errorMessage){}
);

// see reactions in message object
tpMessage.getReactions();
/*
{
    "happy": [
        "user1",
        "user2"
    ],
    "sad": [
        "user3"
    ]
}
*/

8. Get Unread Message Count

You can find out how many channel members have not read a particular message.

tpChannel.getMessageUnreadCount(tpMessage);

9. Delete Message

You can delete your own message.

await TalkPlusAPI.deleteMessage(
    tpChannel, 
    tpMessage,
    errorCallback: (errorCode, errorMessage){}
);

Last updated