Перейти к основному содержимому

Теги каналов и сообщений

Обзор

При создании канала из панели управления существует возможность задать теги каналов и теги сообщений. Теги каналов и сообщений используют для упрощения поиска. На основе тегов можно реализовать передачу подарков, вывод системных сообщений и многое другое:

tip

Теги следует использовать для упрощения поиска сообщений и расширения их функционала

  • gp.channels.fetchChannels - поиск канала по тегам +1 Request

Через теги сообщений можно получить все сообщения в канале, либо часть сообщений (например, системных сообщений или логов):

  • gp.channels.fetchMessages - поиск сообщений по тегам в канале +1 Request

Поиск каналов по тегам

tip

Рассмотрим пример поиска внутриигрового события: "прохождение подземелья" по тегам каналов

В примере показано создание группы на прохождение локации с четырьмя тегами, которые ее характеризуют:

  • подземелье: dungeon
  • название: Demons Lord Castle
  • количество участников: x5
  • уровень сложности: heroic

Остальные игроки могут найти это подземелье по соответствующим тегам:

gp.channels.fetchChannels({
tags: ['dungeon', 'x5', 'demons_lord_castle', 'heroic']
});

Благодаря тегам поиск может быть более гибким. Если одна из характеристик поиска не важна, например, название Demons Lord Castle, то можно расширить поиск доступных подземелий:

gp.channels.fetchChannels({
tags: ['dungeon', 'x5', 'heroic']
});

Поиск сообщений по тегам

tip

Пример поиска сообщений в чате по тегам

В каналах может возникать необходимость разделять сообщения по категориям. Например, можно разделить общение и системные сообщения. При этом нет необходимости создавать отдельные каналы под категории, вместо этого можно размечать сообщения тегами и фильтровать по ним.

Для отправки сообщения в чат с идентификатором channelId: 43 и тегом "chat":

gp.channels.sendMessage({
channelId: 43,
text: "Привет всем, 5 мин и го",
tags: ["chat"]
});

Чтобы получить все сообщения с тегом "chat":

gp.channels.fetchMessages({
channelId: 43,
tags: ["chat"]
});

Вы можете получить все системные события подземелья, используя тег "log":

gp.channels.fetchMessages({
channelId: 43,
tags: ["logs"]
});

При убийстве босса в подземелье можно сообщить о награде. Это разработчик может сделать от имени лидера группы в удобном формате, например JSON:

gp.channels.sendMessage({
channelId: 43,
text: `{
"event": "boss_killed",
"boss": "DEMON_LORD",
"loot": [
"SAPOGI_SMERTI",
"OGNENNYI_MECH",
]
}`,
tags: ["logs"]
});

Теги в личных сообщениях и фидах

С помощью тегов сообщений можно реализовать передачу подарков игрокам. Например, по тегу "gift" можно передать личное сообщение с подарком для игрока playerId: 43:

gp.channels.sendPersonalMessage({
playerId: 43,
text: `{"itemId": 5}`,
tags: ["gift"]
});

Посмотреть список отосланных подарков можно, запросив список сообщений:

gp.channels.fetchPersonalMessages({ playerId: 43, limit: 100 });

Однако, если игроки активно пользуются чатом, то информация о подарке может быть достаточно далеко. Чтобы не подгружать все сообщения, поиск подарка также можно осуществлять по тегу "gift":

gp.channels.fetchPersonalMessages({ playerId: 43, limit: 100, tags: ["gift"] });

Оставайтесь на связи

С другими разделами документации вы можете ознакомиться здесь. Для начала работы вы можете ознакомиться с нашими туториалами.

Сообщество GamePush в Telegram: @gs_community.

Для ваших обращений e-mail: [email protected]

Желаем вам успехов!