고정 메시지

Prev Next

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: 고정된 메시지의 고유 식별자입니다.

이 함수를 통해 특정 메시지가 현재 어떤 상태인지 확인할 수 있으며, 이는 관리자나 사용자가 채널 내 메시지 관리를 보다 효과적으로 할 수 있게 도와줍니다.

고정 메시지 목록

채팅 채널에서 현재 고정된 모든 메시지의 목록을 조회하는 기능입니다. 이 함수는 페이징을 지원하여 대규모 채널에서도 효율적으로 데이터를 처리할 수 있습니다. 사용자는 offsetper_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개까지 설정 가능합니다.

이 기능을 사용하면 채널 관리자는 채널 내에서 중요한 메시지를 쉽게 모니터링하고 관리할 수 있습니다. 또한, 특정 사용자 또는 시간 기준으로 고정 메시지를 빠르게 검색하고 정렬할 수 있어, 채널의 효율적인 운영을 돕습니다.