채널 내 메시징
이 페이지에서는 메시지 발송/조회 및 기타 메시지와 관련된 API가 간략하게 기술되어 있습니다. 번역 기능이 필요할 경우, 아래 내용을 확인하여 주십시오.
1. 채널 내 메시지 목록 조회
채널 내 메시지 목록을 조회합니다.
// 특정 채널의 메시지 목록을 가져오고 싶은 경우
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. 채널 내 파일 메시지 목록 조회
채널 내 파일이 첨부된 메시지 목록을 조회합니다.
// 특정 채널의 파일 메시지 목록을 가져오고 싶은 경우
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. 메시지 발송
채널에 메시지를 발송할 수 있습니다.
TPMessageSendParams 객체의 translationLanguages 멤버에 값을 설정할 경우, 메시지를 전송하는 측에서는 성공 블럭 (성공 클로저)에서 번역된 메시지를 확인할 수 있고, 메시지를 수신하는 측에서는 "onMessageReceived" 콜백 이벤트를 통해서 번역된 메시지를 확인할 수 있습니다.
TPMessageSendParams 클래스는 Klat 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. 메시지 조회
단일 메시지를 조회할 수 있습니다.
// 특정 채널의 메시지 1개만 가져오고 싶은 경우
final messageParams = TPMessageRetrievalParams(channel: channel)
..messageId = messageId
..translationLanguage = translationLanguage;
await TalkPlusAPI.getTPMessage(params, (tpMessage) {
}, errorCallback: (errorCode, errorMessage){
})
5. 메시지 회신
회신 하고자 하는 메시지를 지정할 수 있습니다.
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. 메시지 읽음 확인
안 읽은 메시지 수를 카운팅하기 위해 메시지 읽음 확인 API를 제공합니다.
TPChannel? channel = await TalkPlusAPI.markAsReadChannel(
tpChannel,
errorCallback: (errorCode, errorMessage){}
);
7. 메시지 리액션
메시지 리액션 API를 제공합니다.
// reaction 추가
TPMessage? newMessage = await TalkPlusAPI.addMessageReaction(
tpMessage,
"happy",
errorCallback: (errorCode, errorMessage){}
);
// reaction 삭제
TPMessage? newMessage = await TalkPlusAPI.removeMessageReaction(
tpMessage,
"happy",
errorCallback: (errorCode, errorMessage){}
);
// 메시지 객체에 있는 reaction 조회
tpMessage.getReactions();
/*
{
"happy": [
"user1",
"user2"
],
"sad": [
"user3"
]
}
*/
8. 메시지 번역
채널의 특정 메시지를 지정된 언어로 번역합니다.
TPMessage? message = await TalkPlusAPI.translateMessage(channel,
tpMessage,
["en","de"],
errorCallback: (errorCode, errorMessage){}
);
9. 특정 메시지 안 읽은 사용자 수 확인
특정 메시지를 읽지 않은 사용자 수를 확인할 수 있는 기능을 제공합니다.
tpChannel.getMessageUnreadCount(tpMessage);
10. 메시지 삭제
메시지 삭제를 위한 API를 제공합니다.
await TalkPlusAPI.deleteMessage(
tpChannel,
tpMessage,
errorCallback: (errorCode, errorMessage){}
);
Last updated