이 페이지에서는 메시지 발송/조회 및 기타 메시지와 관련된 API가 간략하게 기술되어 있습니다. 번역 기능이 필요할 경우아래 내용을 확인하여 주십시오.
메시지 번역 기능은 구글 클라우드 번역 서비스를 통하여 지원됩니다. 이 기능을 사용하려면 톡플러스 대쉬보드(TalkPlus Dashboard)에서 구글 클라우드 서비스 계정 KEY 를 추가하여 주십시오.
메시지를 가져오는 메소드 경우, TPMessageRetrievalParams 객체의 translationLanguage 멤버에 번역 될 언어 코드 (ISO-639) 값을 입력하여 주십시오.
메시지를 전송하는 메소드 경우, TPMessageSendParams 객체의 translationLanguage 멤버에 번역 될 언어 코드 (ISO-639) 값을 입력하여 주십시오.
TPMessage 객체의 'getTranslatedText ' 메소드를 호출하면 Key-Value 형태의 타입으로 번역 결과물이 반환되며, 'translationLanguage(s) ' 파라미터에 사용한 언어 코드 (ISO-639) 값을 키(KEY) 값으로 사용하면 번역된 텍스트(Value)를 가져올 수 있습니다.
1. 채널 내 메시지 목록 조회
채널 내 메시지 목록을 조회합니다.
마지막 수신 시간을 기준으로 정렬되어 있습니다.
TPMessageRetrievalParams 객체의 translationLanguage 멤버의 값을 설정할 경우, 번역된 메시지 객체 또는 번역된 메시지 목록 객체가 성공 콜백을 통해서 TPMessage 객체가 전달됩니다.
채널에 과거에 전송된 메시지를 대상으로 번역된 메시지를 가져오는 기능을 수행합니다.
실시간으로 전달되는 메시지에 대한 번역 언어 설정은 로그인 메소드 에서 설정할 수 있습니다.
TPMessageRetrievalParams 클래스는 TalkPlus Android SDK v0.5.3 이상에서 지원됩니다.
Java Kotlin
Copy // 특정 채널의 메시지 목록 가져오고 싶은 경우
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) {
}
});
Copy // 특정 채널의 메시지 목록 가져오고 싶은 경우
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 객체의 translationLanguage 멤버의 값을 설정할 경우, 번역된 메시지 객체 또는 번역된 메시지 목록 객체가 성공 콜백을 통해서 TPMessage 객체가 전달됩니다.
채널에 과거에 전송된 메시지를 대상으로 번역된 메시지를 가져오는 기능을 수행합니다.
실시간으로 전달되는 메시지에 대한 번역 언어 설정은 로그인 메소드 에서 설정할 수 있습니다.
TPMessageRetrievalParams 클래스는 TalkPlus Android SDK v0.5.3 이상에서 지원됩니다.
Java Kotlin
Copy 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) {
}
});
Copy 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. 메시지 발송
채널에 메시지를 발송할 수 있습니다.
현재 지원하는 타입은 text, hidden, custom, admin 타입입니다.
hidden 메시지 타입 발송 시, push notification은 발송되지 않습니다.
admin 메시지 타입은 TalkPlus 대시보드 또는 REST API를 통해서만 발송이 가능합니다.
멘션하고 싶은 사용자가 있을 시, mentions
필드에 멘션하고자 하는 사용자 ID 배열을 넘겨주면 됩니다.
메시지 발송 시 회신 하고자 하는 메시지를 parentMessageId 필드를 이용하여 지정할 수 있습니다.
data (metaData)의 경우, 최대 10개의 Key-value 형식의 데이터를 넣을 수 있습니다.
key, value 둘 다 문자열이어야 합니다.
key값의 최대 길이는 128자이고, value값의 최대 길이는 1024자입니다.
메시지 텍스트와 data 둘 다 빈 값일 경우 발송에 실패합니다.
메세지 텍스트의 허용된 최대 길이는 8,192자입니다.
업로드 가능한 최대 파일 사이즈는 15MB입니다.
이모티콘
UTF-8에서 지원하는 이모티콘을 메시지 본문에 사용할 수 있습니다.
그 외에 이모티콘은 메시지 본문 텍스트에 필요한 값을 넣고 직접 파싱 후 표시하는 방법이 있습니다.
아래 메소드를 이용하여 translationLanguages 멤버에 값을 설정할 경우, 메시지를 전송하는 측에서는 성공 콜백에서 번역된 메시지를 확인할 수 있고, 메시지를 수신하는 측에서는 "onMessageReceived" 콜백 이벤트 를 통해서 번역된 메시지를 확인할 수 있습니다.
TPMessageSendParams 클래스는 TalkPlus Android SDK v0.5.3 이상에서 지원됩니다.
Java Kotlin
Copy // 메시지 발송
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) {
}
}
);
Copy // 메시지 발송
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. 메시지 조회
단일 메시지를 조회할 수 있습니다.
Java Kotlin
Copy // 특정 채널의 메시지 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) {
}
});
Copy // 특정 채널의 메시지 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. 메시지 회신
회신 하고자 하는 메시지를 지정할 수 있습니다.
Java Kotlin
Copy 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) {
}
});
Copy 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를 제공합니다.
Java Kotlin
Copy TalkPlus . markAsReadChannel (channel ,
new TalkPlus . CallbackListener < TPChannel >() {
@ Override
public void onSuccess (tpChannel: TPChannel) {
}
@ Override
public void onFailure ( int errorCode , Exception exception) {
}
}
);
Copy TalkPlus. markAsReadChannel (channel,
object : TalkPlus . CallbackListener < TPChannel >() {
override fun onSuccess (tpChannel: TPChannel ) { }
override fun onFailure (errorCode: Int , exception: Exception ) { }
})
7. 메시지 리액션
메시지 리액션 API를 제공합니다.
reaction
값은 최소 1자에서 최대 64까지의 알파벳/숫자 값만 허용합니다.
각 메시지에는 최대 10개의 reaction
타입 추가가 가능합니다.
각 reaction
타입 당 최대 100개의 사용자 ID가 저장됩니다.
Java Kotlin
Copy // 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"
]
}
*/
Copy // 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 Dashboard)에서 구글 클라우드 서비스 계정 KEY 를 추가하여 주십시오.
번역 대상 언어 코드 (ISO-639) 값을 targetLanguages 파라미터에 입력하여 주십시오.
Java Kotlin
Copy TalkPlus . translateMessage (tpChannel , tpMessage , targetLanguages ,
new CallbackListener < TPMessage > {
@ Override public void onSuccess( TPMessage tpMessage) {
}
@ Override public void onFailure( int errorCode , Exception exception) {
}
}
);
Copy TalkPlus. translateMessage (tpChannel, tpMessage, targetLanguages, object : CallbackListener < TPMessage > {
override fun onSuccess (tpMessage: TPMessage ) { }
override fun onFailure (errorCode: Int , exception: Exception ) { }
})
9. 특정 메시지 안 읽은 사용자 수 확인
특정 메시지를 읽지 않은 사용자 수를 확인할 수 있는 기능을 제공합니다.
Java Kotlin
Copy tpChannel . getMessageUnreadCount (tpMessage);
Copy tpChannel. getMessageUnreadCount (tpMessage)
10. 메시지 삭제
메시지 삭제를 위한 API를 제공합니다.
Java Kotlin
Copy TalkPlus . deleteMessage (channel ,
message ,
new TalkPlus . CallbackListener < Void >() {
@ Override
public void onSuccess ( Void unused) {
}
@ Override
public void onFailure ( int errorCode , Exception exception) {
}
}
);
Copy TalkPlus. deleteMessage (channel,
message,
object : TalkPlus . CallbackListener < Void >() {
override fun onSuccess (aVoid: Void ) { }
override fun onFailure (errorCode: Int , exception: Exception ) { }
})
Last updated 6 months ago