채널 내 메시징

이 페이지에서는 메시지 발송/조회 및 기타 메시지와 관련된 API가 간략하게 기술되어 있습니다. 번역 기능이 필요할 경우아래 내용을 확인하여 주십시오.

메시지 번역 기능은 구글 클라우드 번역 서비스를 통하여 지원됩니다. 이 기능을 사용하려면 톡플러스 대쉬보드(TalkPlus Dashboard)에서 구글 클라우드 서비스 계정 KEY 를 추가하여 주십시오.

  • 메시지를 가져오는 메소드 경우, TPMessageRetrievalParams 객체의 translationLanguage 멤버에 번역 될 언어 코드 (IOS-639) 값을 입력하여 주십시오.

  • 메시지를 전송하 메소드 경우, TPMessageSendParams 객체의 translationLanguage 멤버에 번역 될 언어 코드 (IOS-639) 값을 입력하여 주십시오.

  • 사용할 수 있는 언어 코드 (IOS-639) 값은 아래 링크를 참조하여 주십시오. https://cloud.google.com/translate/docs/languages

  • TPMessage 객체의 'getTranslatedText' 메소드를 호출하면 Key-Value 형태의 타입으로 번역 결과물이 반환되며, 'translationLanguage(s)' 파라미터에 사용한 언어 코드 (IOS-639) 값을 키(KEY) 값으로 사용하면 번역된 텍스트(Value)를 가져올 수 있습니다.

1. 채널 내 메시지 목록 조회

채널 내 메시지 목록을 조회합니다.

마지막 수신 시간을 기준으로 정렬되어 있습니다.

TPMessageRetrievalParams 객체의 translationLanguage 멤버의 값을 설정할 경우, 번역된 메시지 객체 또는 번역된 메시지 목록 객체가 성공 콜백을 통해서 TPMessage 객체가 전달됩니다.

  • 채널에 과거에 전송된 메시지를 대상으로 번역된 메시지를 가져오는 기능을 수행합니다.

  • 실시간으로 전달되는 메시지에 대한 번역 언어 설정은 로그인 메소드에서 설정할 수 있습니다.

  • TPMessageRetrievalParams 클래스는 TalkPlus Unity SDK v0.5.3 이상에서 지원됩니다.

// 특정 채널의 메시지 목록을 가져오고 싶은 경우
var messageParams = new TPMessageRetrievalParams(channel);
messageParams.lastMessage = lastMessage;
messageParams.orderBy = TPMessageOrderBy.TPOrderByLatest;
messageParams.translationLanguage = translationLanguage;
        
TalkPlusApi.GetMessages(messageParams, 
   (List<TPMessage> tpMessages, bool hasNext) => {
   // SUCCESS
}, (int statusCode, Exception e) => {
   // FAILURE
});

// 특정 채널의 메시지 1개만 가져오고 싶은 경우 
var messageParams = new TPMessageRetrievalParams(channel);
messageParams.messageId = messageId;
messageParams.translationLanguage = translationLanguage;

TalkPlusApi.GetMessage(messageParams, 
   (TPMessage tpMessage) => {
   // SUCCESS
}, (int statusCode, Exception e) => {
   // FAILURE
});

2. 채널 내 파일 메시지 목록 조회

채널 내 파일이 첨부된 메시지 목록을 조회합니다.

마지막 수신 시간을 기준으로 정렬되어 있습니다.

TPMessageRetrievalParams 객체의 translationLanguage 멤버의 값을 설정할 경우, 번역된 메시지 객체 또는 번역된 메시지 목록 객체가 성공 콜백을 통해서 TPMessage 객체가 전달됩니다.

  • 채널에 과거에 전송된 메시지를 대상으로 번역된 메시지를 가져오는 기능을 수행합니다.

  • 실시간으로 전달되는 메시지에 대한 번역 언어 설정은 로그인 메소드에서 설정할 수 있습니다.

  • TPMessageRetrievalParams 클래스는 TalkPlus Unity SDK v0.5.3 이상에서 지원됩니다.

// 특정 채널의 메시지 목록을 가져오고 싶은 경우
var messageParams = new TPMessageRetrievalParams(channel);
messageParams.lastMessage = lastMessage;
messageParams.orderBy = TPMessageOrderBy.TPOrderByLatest;
messageParams.translationLanguage = translationLanguage;

TalkPlusApi.GetFileMessages(messageParams, 
   (List<TPMessage> tpMessages, bool hasNext) => {
   // SUCCESS
}, (int statusCode, Exception e) => {
   // FAILURE
});

3. 메시지 발송

채널에 메시지를 발송할 수 있습니다.

현재 지원하는 타입은 text, hidden, custom, admin 타입입니다.

  • hidden 메시지 타입 발송 시, push notification은 발송되지 않습니다.

  • admin 메시지 타입은 TalkPlus 대시보드 또는 REST API를 통해서만 발송이 가능합니다.

  • 멘션하고 싶은 사용자가 있을 시, mentions 필드에 멘션하고자 하는 사용자 ID 배열을 넘겨주면 됩니다.

  • 메시지 발송 시 회신 하고자 하는 메시지를 parentMessageId 필드를 이용하여 지정할 수 있습니다.

  • data (metaData)의 경우, 최대 5개의 Key-value 형식의 데이터를 넣을 수 있습니다.

    • key, value 둘 다 문자열이어야 합니다.

    • key값의 최대 길이는 128자이고, value값의 최대 길이는 1024자입니다.

    • 메시지 텍스트와 data 둘 다 빈 값일 경우 발송에 실패합니다.

  • 메세지 텍스트의 허용된 최대 길이는 8,192자입니다.

  • 업로드 가능한 최대 파일 사이즈는 15MB입니다.

Type

정의값

text

TYPE_TEXT

hidden

TYPE_HIDDEN

custom

TYPE_CUSTOM

admin

TYPE_ADMIN

admin_hidden

TYPE_ADMIN_HIDDEN

  • 아래 메소드를 이용하여 translationLanguages 멤버에 값을 설정할 경우, 메시지를 전송하는 측에서는 성공 콜백에서 번역된 메시지를 확인할 수 있고, 메시지를 수신하는 측에서는 "OnMessageReceived" 콜백 이벤트를 통해서 번역된 메시지를 확인할 수 있습니다.

    • TPMessageSendParams 클래스는 TalkPlus Unity SDK v0.5.3 이상에서 지원됩니다.

var sendParams = new TPMessageSendParams(channel, 
      TPMessageType.TPMessageText, 
      TPMessageContentType.TPMessageContentText);
sendParams.textMessage = textMessage;
sendParams.mentionUserIDs = mentionUserIDs;
sendParams.metaData = metaData;
sendParams.parentMessageId = parentMessageId;
sendParams.translationLanguages = translationLanguages;
            
TalkPlusApi.SendMessage(sendParams, 
   (TPMessage tpMessage) => {
   // SUCCESS
}, (int statusCode, Exception e) => {
   // FAILURE
});

4. 메시지 읽음 확인

안읽은 메시지 수를 카운팅하기 위해 메시지 읽음 확인 API를 제공합니다.

TalkPlusApi.MarkAsReadChannel(channel, (TPChannel tpChannel) => {
   // SUCCESS
}, (int statusCode, Exception e) => {
   // FAILURE
});

5. 메시지 리액션

메시지 리액션 API를 제공합니다.

  • reaction 값은 최소 1자에서 최대 64까지의 알파벳/숫자 값만 허용합니다.

  • 각 메시지에는 최대 10개의 reaction 타입 추가가 가능합니다.

  • reaction 타입 당 최대 100개의 사용자 ID가 저장됩니다.

// reaction 추가
TalkPlusApi.AddMessageReaction(tpMessage, "happy", (TPMessage tpMessage) => {
   // SUCCESS
}, (int statusCode, Exception e) => {
   // FAILURE
});

// reaction 삭제
TalkPlusApi.RemoveMessageReaction(tpMessage, "happy", (TPMessage tpMessage) => {
   // SUCCESS
}, (int statusCode, Exception e) => {
   // FAILURE
});

// 메시지 객체에 있는 reaction 조회
tpMessage.getReactions();
/*
{
    "happy": [
        "user1",
        "user2"
    ],
    "sad": [
        "user3"
    ]
}
*/

6. 특정 메시지 안 읽은 사용자 수 확인

특정 메시지를 읽지 않은 사용자 수를 확인할 수 있는 기능을 제공합니다.

 tpChannel.GetMessageUnreadCount(tpMessage);

7. 메시지 삭제

메시지 삭제를 위한 API를 제공합니다.

TalkPlusApi.DeleteMessage(channel, message, () => {
   // SUCCESS
}, (int statusCode, Exception e) => {
   // FAILURE
});

Last updated