Classic/VPC 환경에서 이용 가능합니다.
고정 메시지
채팅에서 고정메시지(Pinned Message)는 채팅방이나 그룹 대화에서 중요한 메시지를 채널이나 대화창의 상단에 고정하는 기능을 말합니다. 이 기능은 참가자들이 해당 채팅을 열 때마다 쉽게 볼 수 있도록 하여 중요한 정보나 알림을 놓치지 않도록 도와줍니다. 다음은 고정메시지의 주요 특징과 활용 방법에 대한 설명입니다.
고정 메시지의 활용 방법
- 회의 일정 공지: 정기 회의나 중요 이벤트의 일정을 고정메시지로 설정하여 참여자들이 일정을 잊지 않도록 합니다.
- 중요 문서 링크: 중요한 문서나 자료의 링크를 고정하여 모든 참가자가 쉽게 접근할 수 있도록 합니다.
- 규칙 및 지침 공유: 채팅방의 규칙이나 프로젝트 지침을 고정메시지로 설정하여 새로운 참가자도 쉽게 지침을 확인할 수 있게 합니다.
- 긴급 공지: 긴급하게 전달해야 할 내용이나 변경 사항을 고정메시지로 빠르게 공유할 수 있습니다.
고정메시지 기능은 다양한 커뮤니케이션 플랫폼에서 제공되며, 이를 효과적으로 활용하면 팀 커뮤니케이션의 효율성을 크게 높일 수 있습니다.
고정 메시지 생성
채팅 애플리케이션에서 중요한 메시지를 사용자들이 쉽게 볼 수 있도록 상단에 고정하는 기능입니다. 아래의 C# 코드는 채팅 채널에서 메시지를 고정하는 방법을 보여줍니다.
Javascript/Typescript
const pin = {
pinned: true,
messageId: messageId
pinnedAt: new Date().toString(),
expiredAt: "",
};
const data = await nc.createPin(channelId, pin);
Android (Kotlin)
NChat.createPin(channelId, messageId, true, "","") { pin, e->
if (e != null) {
// 오류
} else {
// 성공
}
}
iOS (Swift)
NChat.createPin(channelId: channelId, messageId: messageId, pinned: pinned, pinnedAt: pinnedAt, expiredAt: ExpiredAt) { result in
switch(result)
{
case .success(let pin) :
break;
case .failure(let error) :
break
}
}
Unity
var newPin = await nc.createPin(channelId, messageId, pinned, pinnedAt, expiredAt);
channelId: 메시지가 고정될 채팅 채널의 고유 식별자입니다.pinned: 고정할 메시지의 내용입니다.pinnedAt: 메시지가 고정된 시각을 나타냅니다.expiredAt: 메시지 고정이 해제될 시각입니다.
이 함수를 사용하면 특정 채팅 채널 내에서 중요한 메시지를 쉽게 강조하여 표시할 수 있습니다.
고정 메시지 수정
기존에 고정된 메시지의 정보를 업데이트하기 위한 기능입니다. 메시지의 내용, 고정 시각 또는 만료 시각을 변경할 수 있습니다.
Javascript/Typescript
const pin = {
pinned: true,
pinnedAt: new Date().toString(),
expiredAt: "",
};
const data = await nc.updatePin(pinId, channelId, pin);
Android (Kotlin)
NChat.updatePin(channelId, pinId, true) { pin, e ->
if (e != null) {
// 오류
addMessage("createPin Error: ${e.message}", true)
} else {
// 성공
addMessage("createPin ${pin}", true)
}
}
iOS (Swift)
NChat.updatePin(pinId: pinId, channelId: channelId, pinned: pinned, pinnedAt: pinnedAt, expiredAt: ExpiredAt) { result in
switch(result)
{
case .success(let pin) :
break;
case .failure(let error) :
break
}
}
Unity
var updatedPin = await nc.updatePin(id, channelId, pinned, pinnedAt, expiredAt);
channelId: 수정할 메시지가 있는 채널의 ID입니다.pinned: 수정된 메시지 내용입니다.pinnedAt: 메시지가 새롭게 고정된 시각입니다.expiredAt: 메시지 고정의 새로운 만료 시각입니다.
이 코드는 이미 고정된 메시지의 세부사항을 변경할 때 사용되며, 메시지의 중요성이 변경되었거나 고정 시간을 조정해야 할 때 유용합니다.
고정 메시지 정보
특정 메시지의 고정 관련 정보를 조회하는 기능입니다. 이는 메시지의 고정 상태, 고정 시각, 만료 시각 등을 확인할 수 있습니다.
Javascript/Typescript
const pin = await nc.getPin(channelId, pinId);
Android (Kotlin)
NChat.getPin(channelId, pinId) { pin, e ->
if (e != null) {
// 오류
} else {
// 성공
}
}
iOS (Swift)
NChat.getPin(channelId: channelId, pinId: pinId) { result in
switch(result)
{
case .success(let pins) :
break;
case .failure(let error) :
break
}
}
Unity
var pin = await nc.getPin(channelId, messageId);
channelId: 정보를 조회할 채널의 ID입니다.messageId: 고정된 메시지의 고유 식별자입니다.
이 함수를 통해 특정 메시지가 현재 어떤 상태인지 확인할 수 있으며, 이는 관리자나 사용자가 채널 내 메시지 관리를 보다 효과적으로 할 수 있게 도와줍니다.
고정 메시지 목록
채팅 채널에서 현재 고정된 모든 메시지의 목록을 조회하는 기능입니다. 이 함수는 페이징을 지원하여 대규모 채널에서도 효율적으로 데이터를 처리할 수 있습니다. 사용자는 offset과 per_page을 설정하여 원하는 범위의 데이터를 가져올 수 있습니다.
Javascript/Typescript
const filter = { channel_id: channelId };
const sort = { created_at: -1 };
const option = { offset: 0, per_page: 100 };
const pins = await nc.getPins(channelId, filter, sort, option);
Android (Kotlin)
val filter: Map<String, Any?> = mapOf("" to "")
val sort: Map<String, Any?> = mapOf(
"created_at" to -1
)
val options: Map<String, Any?> = mapOf(
"per_page" to 10,
"offset" to 0
)
NChat.getPins(channelId, filter, sort, options) { pins, e ->
if (e != null) {
// 오류
} else {
// 성공
}
}
iOS (Swift)
let filter: [String: Any] = ["":""]
let option: [String: Any] = ["per_page": 10, "offset": 0]
let sort: [String: Any] = ["created_at": "-1"]
NChat.getPins(channelId: channelId, filter: filter, option: option, sort: sort) { result in
switch(result)
{
case .success(let pins) :
break;
case .failure(let error) :
break
}
}
Unity
Hashtable filter = new Hashtable
{
{ "channel_id", channelId },
};
Hashtable sort = new Hashtable
{
{ "created_at", -1 },
};
Hashtable option = new Hashtable
{
{ "offset", 0 },
{ "per_page", 10 },
};
var pins = await nc.getPins(channelId, filter, sort, option);
파라미터 설명
- filter: 조회할 데이터를 필터링하기 위한 조건들을 정의합니다. 예를 들어, 특정 채널에서 고정 메시지를 조회할 수 있습니다.
- sort: 결과 목록의 정렬 방식을 정의합니다. 여기서는 생성 시간(
created_at)을 기준으로 내림차순(-1) 정렬을 사용합니다. - option: 조회 시 사용할 옵션을 정의합니다.
offset은 조회 시작 위치,per_page는 페이지 당 보여질 메시지 수를 지정합니다.
옵션 세부 사항
| ID | Type | Description |
|---|---|---|
| offset | number | 데이터를 가져올 시작 위치입니다. |
| per_page | number | 한 페이지당 반환할 메시지의 수, 최대 100개까지 설정 가능합니다. |
이 기능을 사용하면 채널 관리자는 채널 내에서 중요한 메시지를 쉽게 모니터링하고 관리할 수 있습니다. 또한, 특정 사용자 또는 시간 기준으로 고정 메시지를 빠르게 검색하고 정렬할 수 있어, 채널의 효율적인 운영을 돕습니다.