채널 내 메시징
이 페이지에서는 메시지 발송/조회 및 기타 메시지와 관련된 API가 간략하게 기술되어 있습니다. 번역 기능이 필요할 경우, 아래 내용을 확인하여 주십시오.
1. 채널 내 메시지 목록 조회
채널 내 메시지 목록을 조회합니다.
// 특정 채널의 메시지 목록을 가져오고 싶은 경우
TPMessageRetrievalParams *params =
[[TPMessageRetrievalParams alloc] initWithChannel:channel];
params.lastMessage = lastMessage;
params.orderby = TPOrderByLatest;
params.translationLanguage = translationLanguage;
[[TalkPlus sharedInstance] getMessages:params
success:^(NSArray<TPMessage *> *tpMessages, BOOL hasNext) {
// SUCCESS
// If 'hasNext' is YES, call this method with the last object in 'tpMessages'.
} failure:^(int errorCode, NSError *error) {
// FAILURE
}];// 특정 채널의 메시지 목록을 가져오고 싶은 경우
let params = TPMessageRetrievalParams(channel: channel)
params?.lastMessage = message
params?.orderby = .orderByLatest
params?.translationLanguage = translationLanguage
TalkPlus.sharedInstance()?.getMessages(params, success: { tpMessages, hasNext in
// SUCCESS
// If 'hasNext' is true, call this method with the last object in 'tpMessages'.
}, failure: { (errorCode, error) in
// FAILURE
})2. 채널 내 파일 메시지 목록 조회
채널 내 파일이 첨부된 메시지 목록을 조회합니다.
TPMessageRetrievalParams *params =
[[TPMessageRetrievalParams alloc] initWithChannel:channel];
params.lastMessage = lastMessage;
params.orderby = TPOrderByLatest;
params.translationLanguage = translationLanguage;
[[TalkPlus sharedInstance] getFileMessages:params
success:^(NSArray<TPMessage *> *tpMessages, BOOL hasNext) {
// SUCCESS
// If 'hasNext' is YES, call this method with the last object in 'tpMessages'.
} failure:^(int errorCode, NSError *error) {
// FAILURE
}];let params = TPMessageRetrievalParams(channel: channel)
params?.lastMessage = message
params?.orderby = .orderByLatest
params?.translationLanguage = translationLanguage
TalkPlus.sharedInstance()?.getFileMessages(params,
success: { tpMessages, hasNext in
// SUCCESS
// If 'hasNext' is true, call this method with the last object in 'tpMessages'.
}, failure: { (errorCode, error) in
// FAILURE
})3. 메시지 발송
채널에 메시지를 발송할 수 있습니다.
아래 메소드를 이용하여
translationLanguages파라미터를 설정할 경우, 메시지를 전송하는 측에서는 성공 블럭 (성공 클로저)에서 번역된 메시지를 확인할 수 있고, 메시지를 수신하는 측에서는 "messageReceived" 콜백 이벤트를 통해서 번역된 메시지를 확인할 수 있습니다.TPMessageSendParams클래스는 Klat iOS SDK v0.5.3 이상에서 지원됩니다.
// 메시지 발송
TPMessageSendParams * params =
[[TPMessageSendParams alloc] initWithContentType:TPMessageContentText
messageType:TPMessageText
channel:channel];
params.textMessage = text; // 필수 파라미터
params.mentionUserIDs = mentionUserIDs;
params.parentMessageId = parentMessageId;
params.fileUrl = fileUrl;
params.translationLanguages = translationLanguages;
[[TalkPlus sharedInstance] sendMessage:params success:^(TPMessage *tpMessage) {
// SUCCESS
} failure:^(int errorCode, NSError *error) {
// FAILURE
}];
// 파일 업로드
TPMessageSendParams * params =
[[TPMessageSendParams alloc] initWithContentType:TPMessageContentFile
messageType:TPMessageText
channel:channel];
params.filePath = filePath; // 필수 파라미터
params.textMessage = textMessage;
params.mentionUserIDs = mentionUserIDs;
params.parentMessageId = parentMessageId;
params.translationLanguages = translationLanguages;
[[TalkPlus sharedInstance] sendMessage:params success:^(TPMessage *tpMessage) {
// SUCCESS
} failure:^(int errorCode, NSError *error) {
// FAILURE
}];// 메시지 발송
let params = TPMessageSendParams(contentType: .text,
messageType: .text,
channel: channel)
params?.textMessage = textMessage
params?.mentionUserIDs = mentionUserIDs
params?.parentMessageId = parentMessageId
params?.translationLanguages = translationLanguages
params?.metaData = metaData
TalkPlus.sharedInstance()?.sendMessage(params) { tpMessage in
// SUCCESS
} failure: { (errorCode, error) in
// FAILURE
}
// 파일 업로드
let params = TPMessageSendParams(contentType: .file,
messageType: .text,
channel: channel)
params?.textMessage = textMessage
params?.filePath = filePath
params?.mentionUserIDs = mentionUserIDs
params?.parentMessageId = parentMessageId
params?.metaData = metaData
params?.translationLanguages = translationLanguages
TalkPlus.sharedInstance()?.sendMessage(params) { tpMessage in
// SUCCESS
} failure: { (errorCode, error) in
// FAILURE
}4. 메시지 조회
단일 메시지를 조회할 수 있습니다.
// 특정 채널의 메시지 1개만 가져오고 싶은 경우
TPMessageRetrievalParams *params =
[[TPMessageRetrievalParams alloc] initWithChannel:channel];
params.messageId = messageId;
params.translationLanguage = translationLanguage;
[[TalkPlus sharedInstance] getMessage:tpChannel
success:^(TPMessage *tpMessage) {
} failure:^(int errorCode, NSError *error) {
}];// 특정 채널의 메시지 1개만 가져오고 싶은 경우
let params = TPMessageRetrievalParams(channel: channel)
params?.messageId = messageId
params?.translationLanguage = translationLanguage
TalkPlus.sharedInstance()?.getMessage(params, success: { tpMessage in
// SUCCESS
}, failure: { (errorCode, error) in
// FAILURE
})5. 메시지 회신
회신 하고자 하는 메시지를 지정할 수 있습니다.
TPMessageSendParams * params =
[[TPMessageSendParams alloc] initWithContentType:TPMessageContentText
messageType:TPMessageText
channel:channel];
params.textMessage = @"hello";
params.parentMessageId = @"anotherMessageIdThatIamReplyingTo";
[[TalkPlus sharedInstance] sendMessage:params success:^(TPMessage *tpMessage) {
// SUCCESS
} failure:^(int errorCode, NSError *error) {
// FAILURE
}];let params = TPMessageSendParams(contentType: .text,
messageType: .text,
channel: channel)
params?.textMessage = "hello"
params?.parentMessageId = "anotherMessageIdThatIamReplyingTo"
TalkPlus.sharedInstance()?.sendMessage(params) { tpMessage in
// SUCCESS
} failure: { (errorCode, error) in
// FAILURE
}6. 메시지 읽음 확인
안 읽은 메시지 수를 카운팅하기 위해 메시지 읽음 확인 API를 제공합니다.
[[TalkPlus sharedInstance] markAsReadChannel:tpChannel
success:^(TPChannel *tpChannel) {
// SUCCESS
} failure:^(int errorCode, NSError *error) {
// FAILURE
}]TalkPlus.sharedInstance()?.mark(asRead: tpChannel,
success: { tpChannel in
// SUCCESS
}, failure: { (errorCode, error) in
// FAILURE
})7. 메시지 리액션
메시지 리액션 API를 제공합니다.
// reaction 추가
[[TalkPlus sharedInstance] addMessageReaction:tpMessage
reaction:reaction
success:^(TPMessage *tpMessage) {
// SUCCESS
} failure:^(int errorCode, NSError *error) {
// FAILURE
}];
// reaction 삭제
[[TalkPlus sharedInstance] removeMessageReaction:tpMessage
reaction:reaction
success:^(TPMessage *tpMessage) {
// SUCCESS
} failure:^(int errorCode, NSError *error) {
// FAILURE
}];
// 메시지 객체에 있는 reaction 조회
[tpMessage getReactions];
/*
{
"happy": [
"user1",
"user2"
],
"sad": [
"user3"
]
}
*/// reaction 추가
TalkPlus.sharedInstance()?.addMessageReaction(tpMessage,
reaction: reaction,
success: { tpMessage in
// SUCCESS
}, failure: { (errorCode, error) in
// FAILURE
})
// reaction 삭제
TalkPlus.sharedInstance()?.removeMessageReaction(tpMessage,
reaction: reaction,
success: { tpMessage in
// SUCCESS
}, failure: { (errorCode, error) in
// FAILURE
})
// 메시지 객체에 있는 reaction 조회
tpMessage.getReactions()
/*
{
"happy": [
"user1",
"user2"
],
"sad": [
"user3"
]
}
*/8. 메시지 번역
채널의 특정 메시지를 지정된 언어로 번역합니다.
[[TalkPlus sharedInstance] translateMessage:tpChannel
message:tpMessage
targetLanguages:@[@"en",@"de"]
success:^(TPMessage *tpMessage) {
// SUCCESS
}, failure:^(int errorCode, NSError *error) {
// FAILURE
}];TalkPlus.sharedInstance()?.translateMessage(tpChannel,
message: tpMessage,
targetLanguages: ["en","de"],
success: { message in
// SUCCESS
}, failure: { (errorCode, error) in
// FAILURE
})9. 특정 메시지 안 읽은 사용자 수 확인
특정 메시지를 읽지 않은 사용자 수를 확인할 수 있는 기능을 제공합니다.
[tpChannel getMessageUnreadCount:tpMessage];tpChannel.getMessageUnreadCount(tpMessage)10. 메시지 삭제
메시지 삭제를 위한 API를 제공합니다.
[[TalkPlus sharedInstance] deleteMessage:tpChannel
message:tpMessage
success:^{
// SUCCESS
} failure:^(int errorCode, NSError *error) {
// FAILURE
}];TalkPlus.sharedInstance()?.deleteMessage(tpChannel,
message: tpMessage,
success: {
// SUCCESS
}, failure: { (errorCode, error) in
// FAILURE
})Last updated