Теги каналов и сообщений
Обзор
При создании канала из панели управления существует возможность задать теги каналов и теги сообщений. Теги каналов и сообщений используют для упрощения поиска. На основе тегов можно реализовать передачу подарков, вывод системных сообщений и многое другое:
Теги следует использовать для упрощения поиска сообщений и расширения их функционала
gp.channels.fetchChannels
- поиск канала по тегам +1 Request
Через теги сообщений можно получить все сообщения в канале, либо часть сообщений (например, системных сообщений или логов):
gp.channels.fetchMessages
- поиск сообщений по тегам в канале +1 Request
Поиск каналов по тегам
Рассмотрим пример поиска внутриигрового события: "прохождение подземелья" по тегам каналов
В примере показано создание группы на прохождение локации с четырьмя тегами, которые ее характеризуют:
- подземелье:
dungeon
- название:
Demons Lord Castle
- количество участников:
x5
- уровень сложности:
heroic
Остальные игроки могут найти это подземелье по соответствующим тегам:
- JavaScript
- Unity
gp.channels.fetchChannels({
tags: ['dungeon', 'x5', 'demons_lord_castle', 'heroic']
});
public void FetchChannels()
{
var filter = new FetchChannelsFilter();
filter.tags = new string[] {"dungeon", "x5", "demons_lord_castle", "heroic"};
GP_Channels.FetchChannels(filter);
}
Благодаря тегам поиск может быть более гибким. Если одна из характеристик поиска не важна, например, название Demons Lord Castle
, то можно расширить поиск доступных подземелий:
- JavaScript
- Unity
gp.channels.fetchChannels({
tags: ['dungeon', 'x5', 'heroic']
});
public void FetchChannels()
{
var filter = new FetchChannelsFilter();
filter.tags = new string[] {"dungeon", "x5", "heroic"};
GP_Channels.FetchChannels(filter);
}
Поиск сообщений по тегам
Пример поиска сообщений в чате по тегам
В каналах может возникать необходимость разделять сообщения по категориям. Например, можно разделить общение и системные сообщения. При этом нет необходимости создавать отдельные каналы под категории, вместо этого можно размечать сообщения тегами и фильтровать по ним.
Для отправки сообщения в чат с идентификатором channelId: 43
и тегом "chat"
:
- JavaScript
- Unity
gp.channels.sendMessage({
channelId: 43,
text: "Привет всем, 5 мин и го",
tags: ["chat"]
});
GP_Channels.SendMessage(
channel_ID: 43,
text: "Привет всем, 5 мин и го",
tags: "chat"
);
Чтобы получить все сообщения с тегом "chat"
:
- JavaScript
- Unity
gp.channels.fetchMessages({
channelId: 43,
tags: ["chat"]
});
GP_Channels.FetchMessages(
channel_ID: 43,
tags: "chat"
);
Вы можете получить все системные события подземелья, используя тег "log"
:
- JavaScript
- Unity
gp.channels.fetchMessages({
channelId: 43,
tags: ["logs"]
});
GP_Channels.FetchMessages(
channel_ID: 43,
tags: "logs"
);
При убийстве босса в подземелье можно сообщить о награде. Это разработчик может сделать от имени лидера группы в удобном формате, например JSON:
- JavaScript
- Unity
gp.channels.sendMessage({
channelId: 43,
text: `{
"event": "boss_killed",
"boss": "DEMON_LORD",
"loot": [
"SAPOGI_SMERTI",
"OGNENNYI_MECH",
]
}`,
tags: ["logs"]
});
GP_Channels.SendMessage(
channel_ID: 43,
text:
"{
event: boss_killed,
boss: DEMON_LORD,
loot:
[
SAPOGI_SMERTI,
OGNENNYI_MECH,
]
}",
tags: "logs"
);
Теги в личных сообщениях и фидах
С помощью тегов сообщений можно реализовать передачу подарков игрокам. Например, по тегу "gift"
можно передать личное сообщение с подарком для игрока playerId: 43
:
- JavaScript
- Unity
gp.channels.sendPersonalMessage({
playerId: 43,
text: `{"itemId": 5}`,
tags: ["gift"]
});
GP_Channels.SendPersonalMessage(
player_ID: 43,
text: "{itemId: 5}",
tags: "gift"
);
Посмотреть список отосланных подарков можно, запросив список сообщений:
- JavaScript
- Unity
gp.channels.fetchPersonalMessages({ playerId: 43, limit: 100 });
GP_Channels.FetchPersonalMessages(
playerId: 43,
limit: 100
);
Однако, если игроки активно пользуются чатом, то информация о подарке может быть достаточно далеко. Чтобы не подгружать все сообщения, поиск подарка также можно осуществлять по тегу "gift":
- JavaScript
- Unity
gp.channels.fetchPersonalMessages({ playerId: 43, limit: 100, tags: ["gift"] });
GP_Channels.FetchPersonalMessages(
playerId: 43,
limit: 100,
tags: "gift"
);
Оставайтесь на связи
С другими разделами документации вы можете ознакомиться здесь. Для начала работы вы можете ознакомиться с нашими туториалами.
Сообщество GamePush в Telegram
: @gs_community.
Для ваших обращений e-mail
: [email protected]
Желаем вам успехов!