채널 내 메시징
이 페이지에서는 메시지 발송/조회 및 기타 메시지와 관련된 API가 간략하게 기술되어 있습니다. 번역 기능이 필요할 경우, 아래 내용을 확인하여 주십시오.
1. 채널 내 메시지 목록 조회
채널 내 메시지 목록을 조회합니다.
// 특정 채널의 메시지 목록 가져오고 싶은 경우
TPMessageRetrievalParams params = new TPMessageRetrievalParams.Builder(channel)
.setLastMessage(lastMessage)
.setTranslationLanguage(translationLanguage)
.build();
TalkPlus.getMessages(params,
new TPCallbackListener<List<TPMessage>, Boolean>() {
@Override
public void onSuccess(List<TPMessage> tpMessages, Boolean hasNext) {
}
@Override
public void onFailure(int errorCode, Exception exception) {
}
});// 특정 채널의 메시지 목록 가져오고 싶은 경우
val params: TPMessageRetrievalParams = TPMessageRetrievalParams.Builder(channel)
.setLastMessage(lastMessage)
.setTranslationLanguage(translationLanguage)
.build()
TalkPlus.getMessages(params,
object : TPCallbackListener<List<TPMessage>, Boolean>() {
override fun onSuccess(tpMessages: List<TPMessage>, hasNext: Boolean) { }
override fun onFailure(errorCode: Int, exception: Exception) { }
})2. 채널 내 파일 메시지 목록 조회
채널 내 파일이 첨부된 메시지 목록을 조회합니다.
TPMessageRetrievalParams params = new TPMessageRetrievalParams.Builder(channel)
.setLastMessage(lastMessage)
.setTranslationLanguage(translationLanguage)
.build();
TalkPlus.getFileMessages(params,
new TPCallbackListener<List<TPMessage>, Boolean>() {
@Override
public void onSuccess(List<TPMessage> tpMessages, Boolean hasNext) {
}
@Override
public void onFailure(int errorCode, Exception exception) {
}
});val params: TPMessageRetrievalParams = TPMessageRetrievalParams.Builder(channel)
.setLastMessage(lastMessage)
.setTranslationLanguage(translationLanguage)
.build()
TalkPlus.getFileMessages(params,
object : TPCallbackListener<List<TPMessage>, Boolean>() {
override fun onSuccess(tpMessages: List<TPMessage>, hasNext: Boolean) { }
override fun onFailure(errorCode: Int, exception: Exception) { }
});3. 메시지 발송
채널에 메시지를 발송할 수 있습니다.
아래 메소드를 이용하여 translationLanguages 멤버에 값을 설정할 경우, 메시지를 전송하는 측에서는 성공 콜백에서 번역된 메시지를 확인할 수 있고, 메시지를 수신하는 측에서는 "onMessageReceived" 콜백 이벤트를 통해서 번역된 메시지를 확인할 수 있습니다.
TPMessageSendParams 클래스는 TalkPlus Android SDK v0.5.3 이상에서 지원됩니다.
// 메시지 발송
TPMessageSendParams params = new TPMessageSendParams.Builder(channel,
TPMessageSendParams.MessageType.TEXT,
TPMessageSendParams.ContentType.TEXT)
.setText(textMessage)
.setMentions(mentionsUserIDs)
.setParentMessageId(parentMessageId)
.setMetaData(metaData)
.setFileUrl()
.setTranslationLanguages(translationLanguages)
.build();
TalkPlus.sendMessage(params,
new TalkPlus.CallbackListener<TPMessage>() {
@Override
public void onSuccess(TPMessage tpMessage) {
}
@Override
public void onFailure(int errorCode, Exception exception) {
}
}
);
// 파일 업로드
TPMessageSendParams params = new TPMessageSendParams.Builder(channel,
TPMessageSendParams.MessageType.TEXT,
TPMessageSendParams.ContentType.FILE)
.setFile(file)
.setMentions(mentionsUserIDs)
.setParentMessageId(parentMessageId)
.setMetaData(metaData)
.setTranslationLanguages(translationLanguages)
.build();
TalkPlus.sendMessage(params,
new TalkPlus.CallbackListener<TPMessage>() {
@Override
public void onSuccess(TPMessage tpMessage) {
}
@Override
public void onFailure(int errorCode, Exception exception) {
}
}
);// 메시지 발송
val params: TPMessageSendParams = TPMessageSendParams.Builder(channel,
TPMessageSendParams.MessageType.TEXT,
TPMessageSendParams.ContentType.TEXT)
.setText(textMessage)
.setMentions(mentionsUserIDs)
.setParentMessageId(parentMessageId)
.setMetaData(metaData)
.setFileUrl()
.setTranslationLanguages(translationLanguages)
.build()
TalkPlus.sendMessage(params,
object : TalkPlus.CallbackListener<TPMessage>() {
override fun onSuccess(tpMessage: TPMessage) {
}
override fun onFailure(errorCode: Int, exception: Exception) { }
})
// 파일 업로드
val params: TPMessageSendParams = TPMessageSendParams.Builder(channel,
TPMessageSendParams.MessageType.TEXT,
TPMessageSendParams.ContentType.FILE)
.setFile(file)
.setMentions(mentionsUserIDs)
.setParentMessageId(parentMessageId)
.setMetaData(metaData)
.setTranslationLanguages(translationLanguages)
.build()
TalkPlus.sendMessage(params,
object : TalkPlus.CallbackListener<TPMessage>() {
override fun onSuccess(tpMessage: TPMessage) {
}
override fun onFailure(errorCode: Int, exception: Exception) { }
})4. 메시지 조회
단일 메시지를 조회할 수 있습니다.
// 특정 채널의 메시지 1개만 가져오고 싶은 경우
TPMessageRetrievalParams params = new TPMessageRetrievalParams.Builder(channel)
.setMessageId(messageId)
.setTranslationLanguage(translationLanguage)
.build();
TalkPlus.getMessage(params, new CallbackListener<TPMessage>() {
@Override
public void onSuccess(TPMessage tpMessage) {
}
@Override
public void onFailure(int errorCode, Exception exception) {
}
});// 특정 채널의 메시지 1개만 가져오고 싶은 경우
val params: TPMessageRetrievalParams = TPMessageRetrievalParams.Builder(channel)
.setMessageId(messageId)
.setTranslationLanguage(translationLanguage)
.build()
TalkPlus.getMessage(params, object : CallbackListener<TPMessage>() {
override fun onSuccess(tpMessage: TPMessage) { }
override fun onFailure(errorCode: Int, exception: Exception) { }
})5. 메시지 회신
회신 하고자 하는 메시지를 지정할 수 있습니다.
TPMessageSendParams params = new TPMessageSendParams.Builder(channel)
.setMessageId(messageId)
.setTranslationLanguage(translationLanguage)
.build();
params.textMessage = "hello"
params.parentMessageId = "anotherMessageIdThatIamReplyingTo"
TalkPlus.sendMessage(params, new CallbackListener<TPMessage> {
@Override
public void onSuccess(TPMessage tpMessage) {
}
@Override
public void onFailure(int errorCode, Exception exception) {
}
});val params: TPMessageSendParams = TPMessageSendParams.Builder(channel)
.setMessageId(messageId)
.setTranslationLanguage(translationLanguage)
.build()
params.apply {
textMessage = "hello"
parentMessageId = "anotherMessageIdThatIamReplyingTo"
}
TalkPlus.sendMessage(params, object : CallbackListener<TPMessage> {
override fun onSuccess(tpMessage: TPMessage) { }
override fun onFailure(errorCode: Int, exception: Exception) { }
})6. 메시지 읽음 확인
안읽은 메시지 수를 카운팅하기 위해 메시지 읽음 확인 API를 제공합니다.
TalkPlus.markAsReadChannel(channel,
new TalkPlus.CallbackListener<TPChannel>() {
@Override
public void onSuccess(tpChannel: TPChannel) {
}
@Override
public void onFailure(int errorCode, Exception exception) {
}
}
);TalkPlus.markAsReadChannel(channel,
object : TalkPlus.CallbackListener<TPChannel>() {
override fun onSuccess(tpChannel: TPChannel) { }
override fun onFailure(errorCode: Int, exception: Exception) { }
})7. 메시지 리액션
메시지 리액션 API를 제공합니다.
// reaction 추가
TalkPlus.addMessageReaction(tpMessage,
"happy",
new CallbackListener<TPMessage>() {
@Override
public void onSuccess(TPMessage tpMessage) {
}
@Override
public void onFailure(int errorCode, Exception exception) {
}
}
);
// reaction 삭제
TalkPlus.removeMessageReaction(tpMessage,
"happy",
new CallbackListener<TPMessage>() {
@Override
public void onSuccess(TPMessage tpMessage) {
}
@Override
public void onFailure(int errorCode, Exception exception) {
}
}
);
// 메시지 객체에 있는 reaction 조회
tpMessage.getReactions();
/*
{
"happy": [
"user1",
"user2"
],
"sad": [
"user3"
]
}
*/// reaction 추가
TalkPlus.addMessageReaction(tpMessage,
"happy",
object : CallbackListener<TPMessage>() {
override fun onSuccess(tpMessage: TPMessage) { }
override fun onFailure(errorCode: Int, exception: Exception) { }
})
// reaction 삭제
TalkPlus.removeMessageReaction(tpMessage,
"happy",
object : CallbackListener<TPMessage>() {
override fun onSuccess(tpMessage: TPMessage) { }
override fun onFailure(errorCode: Int, exception: Exception) { }
})
// 메시지 객체에 있는 reaction 조회
tpMessage.reactions
/*
{
"happy": [
"user1",
"user2"
],
"sad": [
"user3"
]
}
*/8. 메시지 번역
채널의 특정 메시지를 지정된 언어로 번역합니다.
TalkPlus.translateMessage(tpChannel, tpMessage, targetLanguages,
new CallbackListener<TPMessage> {
@Override public void onSuccess(TPMessage tpMessage) {
}
@Override public void onFailure(int errorCode, Exception exception) {
}
}
);TalkPlus.translateMessage(tpChannel, tpMessage, targetLanguages, object : CallbackListener<TPMessage> {
override fun onSuccess(tpMessage: TPMessage) { }
override fun onFailure(errorCode: Int, exception: Exception) { }
})9. 특정 메시지 안 읽은 사용자 수 확인
특정 메시지를 읽지 않은 사용자 수를 확인할 수 있는 기능을 제공합니다.
tpChannel.getMessageUnreadCount(tpMessage);tpChannel.getMessageUnreadCount(tpMessage)10. 메시지 삭제
메시지 삭제를 위한 API를 제공합니다.
TalkPlus.deleteMessage(channel,
message,
new TalkPlus.CallbackListener<Void>() {
@Override
public void onSuccess(Void unused) {
}
@Override
public void onFailure(int errorCode, Exception exception) {
}
}
);TalkPlus.deleteMessage(channel,
message,
object : TalkPlus.CallbackListener<Void>() {
override fun onSuccess(aVoid: Void) { }
override fun onFailure(errorCode: Int, exception: Exception) { }
})Last updated