채널 목록 조회
1. 전체 Public 채널 목록 조회
참여중이 아니더라도 전체 public 채널 목록을 조회할 수 있습니다.
Pagination 처리가 되어 있어 다음 페이지 조회를 위해서는 이전 조회 시에 리턴받은 channel 객체 중 마지막 객체의 id를 전달하면 그 다음 페이지를 조회할 수 있습니다.
const numOfRows = 20;
const resp = await client.getPublicChannels({
limit: numOfRows,
category: 'important_channels', // optional
subcategory: 'important_subcategory', // optional
});
// fetch more channels
if (resp.hasNext) {
const lastChannelId = resp.channels[resp.channels.length - 1].id;
const moreChannelsResp = await client.getPublicChannels({
lastChannelId,
limit: numOfRows,
});
}
// same query but using callback
client.getPublicChannels({}, function(err, resp) {
if (resp.hasNext) {
const lastChannelId = resp.channels[resp.channels.length - 1].id;
}
});
Response
{
"channels": [
{
"id": "channel123",
"name": "MyFirstChannel",
"ownerId": "user123",
"pushNotificationDisabled": false,
"imageUrl": "image url",
"data": {
"someMetaKey1": "someMetaValue1",
"someMetaKey2": "someMetaValue2"
},
"type": "public",
"isFrozen": false,
"memberCount": 1,
"maxMemberCount": 10,
"hideMessagesBeforeJoin": true,
"category": "",
"subcategory": "",
"privateTag": "",
"privateData": "",
"mutedUsers": [],
"members": [
{
"id": "user123",
"username": "john",
"profileImageUrl": "http://cnd.test.com/123.jpg",
"data": {},
"memberInfo": {},
"lastReadAt": 1583924400,
"lastSentAt": 1583924400,
"updatedAt": 1583924400,
"createdAt": 1583921400
}
],
"bannedUsers": [
{
"id": "user123",
"username": "john",
"profileImageUrl": "http://cnd.test.com/123.jpg",
"data": {},
"memberInfo": {},
"lastReadAt": 1583924400,
"lastSentAt": 1583924400,
"updatedAt": 1583924400,
"createdAt": 1583921400
}
],
"bots": [],
"pushNotificationDisabled": false,
"pushNotificationSoundAOS": "",
"pushNotificationSoundIOS": "",
"updatedAt": 1583924400,
"createdAt": 1583921400,
"unreadCount": 1,
"lastReadAt": 1583914400,
"lastMessage": {
"id": "sdf2l5s9j",
"channelId": "channel123",
"userId": "user456",
"username": "myUsername",
"profileImageUrl": "http://cdn.test.com/123.jpg",
"type": "message",
"text": "Hello world",
"data": {
"customField": "customData"
},
"parentMessage": {},
"parentMessageId": "",
"reactions": {"happy": ["user1"]},
"createdAt": 1583921400
}
}
],
"hasNext": false
}
2. 현재 참여 중인 채널 목록 조회
현재 참여 중인 채널 목록을 조회할 수 있습니다.
채널 카테고리, 유저가 설정한 태그 명으로 필터링 해서 열람할 수 있습니다. hasUnread
플래그 값을 true로 설정하여 안 읽은 메시지가 있는 채널로도 필터링 가능합니다.
Pagination 처리가 되어 있어 다음 페이지 조회를 위해서는 이전 조회 시에 리턴받은 channel 객체 중 마지막 객체의 id를 전달하면 그 다음 페이지를 조회할 수 있습니다.
const numOfRows = 20;
const resp = await client.getChannels({
limit: numOfRows,
category: 'important_channels', // optional
subcategory: 'important_subcategory', // optional
isFrozen: false, // optional. isFrozen 상태가 일치하는 채널만 조회
hasUnread: true, // optional. true 옵션만 제공. true 일 때 안 읽은 메시지가 있는 채널만 조회
privateTag: 'tag1', // optional. see: https://docs.talkplus.io/javascript/channel/member-settings
});
if (resp.hasNext) {
const lastChannelId = resp.channels[resp.channels.length - 1].id;
const moreChannelsResp = await client.getChannels({lastChannelId, limit: numOfRows});
}
// same query but using callback
client.getChannels({}, function(err, resp) {
if (resp.hasNext) {
const lastChannelId = resp.channels[resp.channels.length - 1].id;
}
});
3. 숨긴 채널 목록 조회
현재 참여중인 채널 중, 숨김 처리한 목록을 조회할 수 있습니다.
Pagination 처리가 되어 있어 다음 페이지 조회를 위해서는 이전 조회 시에 리턴받은 channel 객체 중 마지막 객체의 id를 전달하면 그 다음 페이지를 조회할 수 있습니다.
const numOfRows = 20;
const resp = await client.getHiddenChannels({limit: numOfRows});
if (resp.hasNext) {
const lastChannelId = resp.channels[resp.channels.length - 1].id;
const moreChannelsResp = await client.getHiddenChannels({lastChannelId, limit: numOfRows});
}
// same example but using callback
client.getHiddenChannels({}, function(err, resp) {
if (resp.hasNext) {
const lastChannelId = resp.channels[resp.channels.length - 1].id;
}
});
Response
{
"channels": [
{
"id": "channel123",
"name": "MyFirstChannel",
"ownerId": "user123",
"pushNotificationDisabled": false,
"imageUrl": "image url",
"data": {
"someMetaKey1": "someMetaValue1",
"someMetaKey2": "someMetaValue2"
},
"type": "public",
"isFrozen": false,
"memberCount": 1,
"maxMemberCount": 10,
"hideMessagesBeforeJoin": true,
"category": "",
"subcategory": "",
"privateTag": "",
"privateData": "",
"mutedUsers": [],
"members": [
{
"id": "user123",
"username": "john",
"profileImageUrl": "http://필터링 해서 열람할 수 있습니다. .test.com/123.jpg",
"data": {},
"memberInfo": {},
"lastReadAt": 1583924400,
"lastSentAt": 1583924400,
"updatedAt": 1583924400,
"createdAt": 1583921400
}
],
"bannedUsers": [
{
"id": "user123",
"username": "john",
"profileImageUrl": "http://cnd.test.com/123.jpg",
"data": {},
"memberInfo": {},
"lastReadAt": 1583924400,
"lastSentAt": 1583924400,
"updatedAt": 1583924400,
"createdAt": 1583921400
}
],
"bots": [],
"pushNotificationDisabled": false,
"pushNotificationSoundAOS": "",
"pushNotificationSoundIOS": "",
"updatedAt": 1583924400,
"createdAt": 1583921400,
"unreadCount": 1,
"lastReadAt": 1583914400,
"lastMessage": {
"id": "sdf2l5s9j",
"channelId": "channel123",
"userId": "user456",
"username": "myUsername",
"profileImageUrl": "http://cdn.test.com/123.jpg",
"type": "message",
"text": "Hello world",
"data": {
"customField": "customData"
},
"parentMessage": {},
"parentMessageId": "",
"reactions": {"happy": ["user1"]},
"createdAt": 1583921400
}
}
],
"hasNext": false
}
4. 전체 채널의 안 읽은 메시지 수 조회
현재 참여중인 모든 채널의 안 읽은 메시지 수 합을 조회할 수 있습니다.
// get total unread count
const resp = await client.getUnreadCount();
console.log('unreadCount: ', resp.count);
// filter unread message count by channel category, subcategory and privateTag.
// this feature is available starting from v0.5.6.
const filteredResp = await client.getUnreadCount({
category: 'someCategory', // optional
subcategory: 'someSubcategory', // optional
privateTag: 'some personal tag', // optional
});
console.log('filtered unreadCount: ', filteredResp.count);
5. 전체 채널 메시지 읽음 확인
현재 참여중인 모든 채널에 일괄적으로 메시지 읽음 확인 처리를 합니다.
await client.markAsReadAllChannel();
6. 참여 중인 채널 검색
현재 참여중인 채널 목록을 검색할 수 있습니다.
채널명, 채널 카테고리 이름, 유저가 설정한 태그 명, 또는 특정 사용자가 참여하고 있는지 여부로 필터링 해서 열람할 수 있습니다. hasUnread
플래그 값을 true로 설정하여 안 읽은 메시지가 있는 채널로도 필터링 가능합니다.
Pagination 처리가 되어 있어 다음 페이지 조회를 위해서는 이전 조회 시에 리턴받은 channel 객체 중 마지막 객체의 id를 전달하면 그 다음 페이지를 조회할 수 있습니다.
const resp = await client.searchChannels({
query: '검색하고자 하는 채널명',
members: ['someUserId1', 'someUserId2'], // 그 중에 특정 사용자가 참여하고 있는 채널만
category: 'someCategory', // optional
subcategory: 'someCategory', // optional
privateTag: 'myTag',
isFrozen: false, // optional. isFrozen 상태가 일치하는 채널만 조회
hasUnread: true, // optional. true 옵션만 제공. true 일 때 안 읽은 메시지가 있는 채널만 조회
limit: 10,
});
// 그 다음 페이지 조회 시
if (resp.hasNext) {
const lastChannelId = resp.channels[resp.channels.length - 1].id;
const moreChannelsResp = await client.searchChannels({
query: '검색하고자 하는 채널명',
members: ['someUserId1', 'someUserId2'], // 그 중에 특정 사용자가 참여하고 있는 채널만
category: 'someCategory', // optional
subcategory: 'someCategory', // optional
privateTag: 'myTag',
isFrozen: false, // optional. isFrozen
limit: 10,
});
}
Response
{
"channels": [
{
"id": "channel123",
"name": "MyFirstChannel",
"ownerId": "user123",
"pushNotificationDisabled": false,
"imageUrl": "image url",
"data": {
"someMetaKey1": "someMetaValue1",
"someMetaKey2": "someMetaValue2"
},
"type": "private",
"isFrozen": false,
"memberCount": 1,
"maxMemberCount": 10,
"hideMessagesBeforeJoin": true,
"category": "",
"subcategory": "",
"privateTag": "",
"privateData": "",
"mutedUsers": [],
"members": [
{
"id": "user123",
"username": "john",
"profileImageUrl": "http://cnd.test.com/123.jpg",
"data": {},
"memberInfo": {},
"lastReadAt": 1583924400,
"lastSentAt": 1583924400,
"updatedAt": 1583924400,
"createdAt": 1583921400
}
],
"bannedUsers": [
{
"id": "user123",
"username": "john",
"profileImageUrl": "http://cnd.test.com/123.jpg",
"data": {},
"memberInfo": {},
"lastReadAt": 1583924400,
"lastSentAt": 1583924400,
"updatedAt": 1583924400,
"createdAt": 1583921400
}
],
"bots": [],
"pushNotificationDisabled": false,
"pushNotificationSoundAOS": "",
"pushNotificationSoundIOS": "",
"updatedAt": 1583924400,
"createdAt": 1583921400,
"unreadCount": 1,
"lastReadAt": 1583914400,
"lastMessage": {
"id": "sdf2l5s9j",
"channelId": "channel123",
"userId": "user456",
"username": "myUsername",
"profileImageUrl": "http://cdn.test.com/123.jpg",
"type": "message",
"text": "Hello world",
"data": {
"customField": "customData"
},
"parentMessage": {},
"parentMessageId": "",
"reactions": {"happy": ["user1"]},
"createdAt": 1583921400
}
}
],
"hasNext": false
}
Last updated