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