Приглашения
Обзор
С помощью приглашений (инвайтов) можно управлять добавлением игроков в канал. Так как на основе каналов можно реализовать чаты, гильдии, лобби и многое другое, то инвайты становятся неотъемлемой их частью и обеспечивают работу механизма вступления куда-либо. Например, игроку могут предложить вступить в:
- группу или отряд
- рейд
- гильдию или клан
- сообщество и так далее
Механика работы инвайтов 💡 может быть следующей: когда игрока собираются куда-то пригласить, по центру экрана возникает мигающий значком с предложением присоединиться к чату, группе или рейду и основной информацией об этом событии. В этом случае игрок может принять предложение, отказаться, проигнорировать и т.д.
Механика работы инвайтов 💡 приведена в качестве примера. Средствами сервиса GamePush визуально ничего не отображается, однако разработчик может реализовать это самостоятельно
Ниже представлен полный список методов, реализованных для управления приглашениями в каналах:
gp.channels.sendInvite
- отправка приглашения +1 Requestgp.channels.cancelInvite
- отмена отправки приглашения +1 Requestgp.channels.acceptInvite
- принятие приглашения +1 Requestgp.channels.rejectInvite
- отклонение приглашения +1 Requestgp.channels.fetchInvites
- получить список приглашений в канал +1 Requestgp.channels.fetchMoreInvites
- дополнительно подгрузить список приглашений в канал +1 Requestgp.channels.fetchChannelInvites
- получить список приглашений, отправленных из канала +1 Requestgp.channels.fetchMoreChannelInvites
- дополнительно подгрузить список приглашений, отправленных из канала +1 Requestgp.channels.fetchSentInvites
- получить список всех разосланных приглашений +1 Requestgp.channels.fetchMoreSentInvites
- дополнительно подгрузить список всех разосланных приглашений +1 Request
Отправка приглашения
+1 RequestДля отправки приглашения игроку playerId: 123456
в канал channelId: 123
:
- JavaScript
- Unity
gp.channels.sendInvite({ channelId: 123, playerId: 123456 });
GP_Channels.SendInvite(channel_ID: 123, player_ID: 123456);
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('sendInvite', () => {
// приглашение отправлено
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnSendInvite += OnSendInvite;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnSendInvite -= OnSendInvite;
}
// приглашение отправлено
private void OnSendInvite() => Debug.Log("ON SEND INVITE");
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:sendInvite', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnSendInviteError += OnSendInviteError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnSendInviteError -= OnSendInviteError;
}
// завершен с ошибкой
private void OnSendInviteError() => Debug.Log("SEND INVITE: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки | сценарные ошибки |
---|---|
player_not_found | not_invited |
project_not_found | empty_channel_id |
origin_not_allowed | channel_not_found |
player_banned | access_denied |
internal_error | already_in_channel |
already_invited |
Приглашенному игроку приходит инвайт. Остальным игрокам (если они могут приглашать других игроков) приходит уведомление о том, что игроку прислали приглашение:
- JavaScript
- Unity
gp.channels.on('event:invite', (invite) => {
// ID канала
invite.channelId;
// ID игрока кто послал инвайт
invite.playerFromId;
// ID игрока кому послали инвайт
invite.playerToId;
// Дата отправки инвайта в ISO 8601 UTC "2022-12-01T04:52:26+0000"
invite.date;
if (invite.playerToId === gp.player.id) {
// Пригласили меня в канал
} else {
// В канале кто-то выслал кому-то инвайт
}
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnInvite += OnInvite;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnInvite -= OnInvite;
}
private void OnInvite(InviteData invite)
{
// ID канала
Debug.log(invite.channelId);
// ID игрока кто послал инвайт
Debug.log(invite.playerFromId);
// ID игрока кому послали инвайт
Debug.log(invite.playerToId);
// Дата отправки инвайта в ISO 8601 UTC "2022-12-01T04:52:26+0000"
Debug.log(invite.date);
if (invite.playerToId === gp.player.id) {
// Пригласили меня в канал
} else {
// В канале кто-то выслал кому-то инвайт
}
}
Отмена отправки приглашения
+1 RequestДля отмены отправки приглашения игроку playerId: 123456
в канал channelId: 123
:
- JavaScript
- Unity
gp.channels.cancelInvite({ channelId: 123, playerId: 123456 });
GP_Channels.CancelInvite(channel_ID: 123, player_ID: 123456);
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('cancelInvite', () => {
// приглашение отправлено
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnCancelInviteSuccess += OnCancelInviteSuccess;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnCancelInviteSuccess -= OnCancelInviteSuccess;
}
// приглашение отправлено
private void OnCancelInviteSuccess() => Debug.Log("CANCEL INVITE: SUCCESS");
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:cancelInvite', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnCancelInviteError += OnCancelInviteError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnCancelInviteError -= OnCancelInviteError;
}
// завершен с ошибкой
private void OnCancelInviteError() => Debug.Log("CANCEL INVITE: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки | сценарные ошибки |
---|---|
player_not_found | not_invited |
project_not_found | empty_channel_id |
origin_not_allowed | channel_not_found |
player_banned | access_denied |
internal_error | not_invited |
Приглашенному игроку приходит отмена инвайта. Остальным игрокам (если они могут приглашать других игроков) приходит уведомление о том, что приглашение было отменено:
- JavaScript
- Unity
gp.channels.on('event:cancelInvite', (invite) => {
// ID канала
invite.channelId;
// ID игрока кто послал инвайт
invite.playerFromId;
// ID игрока кому послали инвайт
invite.playerToId;
if (invite.playerToId === gp.player.id) {
// Отправленный мне инвайт отменили
} else {
// В моем канале кто-то отменил отосланный инвайт
}
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnCancelInviteEvent += OnCancelInviteEvent;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnCancelInviteEvent -= OnCancelInviteEvent;
}
private void OnCancelInviteEvent(CancelInviteData data)
{
Debug.Log("CANCEL INVITE EVENT: CHANNEL ID: " + data.channelId);
Debug.Log("CANCEL INVITE EVENT: PLAYER FROM: ID: " + data.playerFromId);
Debug.Log("CANCEL INVITE EVENT: PLAYER TO: ID: " + data.playerToId);
}
Принятие приглашения
+1 RequestИгрок может принять приглашение в канал channelId: 123
:
- JavaScript
- Unity
gp.channels.acceptInvite({ channelId: 123 });
GP_Channels.AcceptInvite(channel_ID: 123);
После этого игрок вступает в канал. Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('acceptInvite', () => {
// успешно принят
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnAcceptInvite += OnAcceptInvite;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnAcceptInvite -= OnAcceptInvite;
}
// успешно принят
private void OnAcceptInvite() => Debug.Log("ON ACCEPT INVITE");
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:acceptInvite', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnAcceptInviteError += OnAcceptInviteError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnAcceptInviteError -= OnAcceptInviteError;
}
// завершен с ошибкой
private void OnAcceptInviteError() => Debug.Log("ACCEPT INVITE: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки | сценарные ошибки |
---|---|
player_not_found | not_invited |
project_not_found | empty_channel_id |
origin_not_allowed | channel_not_found |
player_banned | already_in_channel |
internal_error | channel_capacity_reached |
При вступлении в канал приглашенному игроку и всем игрокам в канале приходит уведомление о вступлении:
- JavaScript
- Unity
gp.channels.on('event:join', (member) => {
// ID канала
member.channelId;
// ID вступившего игрока
member.id;
// Поля игрока (аватар, имя, кастомные поля)
member.state;
// Информация о мьюте игрока
member.mute;
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnJoinEvent += OnJoinEvent;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnJoinEvent -= OnJoinEvent;
}
private void OnJoinEvent(GP_Data data)
{
var joinData = data.Get<JoinData>();
Debug.Log("JOIN EVENT: CHANNEL ID: " + joinData.channelId);
Debug.Log("JOIN EVENT: ID: " + joinData.id);
Debug.Log("JOIN EVENT: MUTE: IS MUTED: " + joinData.mute.isMuted);
Debug.Log("JOIN EVENT: MUTE: UNMUTE AT: " + joinData.mute.unmuteAt);
Debug.Log("JOIN EVENT: PLAYER STATE: AVATAR: " + joinData.state.avatar);
Debug.Log("JOIN EVENT: PLAYER STATE: CREDITIALS: " + joinData.state.credentials);
Debug.Log("JOIN EVENT: PLAYER STATE: ID: " + joinData.state.id);
Debug.Log("JOIN EVENT: PLAYER STATE: NAME: " + joinData.state.name);
Debug.Log("JOIN EVENT: PLAYER STATE: PLATFORM TYPE: " + joinData.state.platformType);
Debug.Log("JOIN EVENT: PLAYER STATE: PROJECT ID: " + joinData.state.projectId);
Debug.Log("JOIN EVENT: PLAYER STATE: SCORE: " + joinData.state.score);
}
Отклонение приглашения
+1 RequestИгрок может отклонить приглашение в канал channelId: 123
:
- JavaScript
- Unity
gp.channels.rejectInvite({ channelId: 123 });
GP_Channels.RejectInvite(channel_ID: 123);
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('rejectInvite', () => {
// успешно отклонен
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnRejectInviteSuccess += OnRejectInviteSuccess;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnRejectInviteSuccess -= OnRejectInviteSuccess;
}
// успешно отклонен
private void OnRejectInviteSuccess() => Debug.Log("REJECT INVITE: SUCCESS");
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:rejectInvite', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnRejectInviteError += OnRejectInviteError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnRejectInviteError -= OnRejectInviteError;
}
// завершен с ошибкой
private void OnRejectInviteError() => Debug.Log("REJECT INVITE: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки | сценарные ошибки |
---|---|
player_not_found | not_invited |
project_not_found | empty_channel_id |
origin_not_allowed | channel_not_found |
player_banned | |
internal_error |
Всем игрокам в канале (если они могут приглашать других игроков) приходит уведомление о том, что приглашение было отменено:
- JavaScript
- Unity
gp.channels.on('event:rejectInvite', (invite) => {
// ID канала
invite.channelId;
// ID игрока, отправившего приглашение
invite.playerFromId;
// ID игрока, которому отправили приглашение
invite.playerToId;
if (invite.playerFromId === gp.player.id) {
// Мой инвайт отклонили
} else {
// Кто-то отклонил отправленное приглашение
}
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnRejectInviteEvent += OnRejectInviteEvent;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnRejectInviteEvent -= OnRejectInviteEvent;
}
private void OnRejectInviteEvent(RejectInviteData data)
{
Debug.Log("REJECT INVITE EVENT: CHANNEL ID: " + data.channelId);
Debug.Log("REJECT INVITE EVENT: PLAYER FROM: ID: " + data.playerFromId);
Debug.Log("REJECT INVITE EVENT: PLAYER TO: ID: " + data.playerToId);
}
Получить список приглашений игрока в каналы
+1 RequestС помощью метода gp.channels.fetchInvites
вы можете получить список всех каналов, в которые пригласили игрока:
- JavaScript
- Unity
const response = await gp.channels.fetchInvites({
// сколько запросить за раз, макс. 100
limit: 100,
// сколько записей пропустить, макс. 10000, используется для постраничной навигации или "подгрузить еще"
offset: 0
});
// limit - сколько запросить за раз, макс. 100
// offset - сколько записей пропустить, макс. 10000, используется для постраничной навигации или "подгрузить еще"
GP_Channels.FetchInvites(limit: 100, offset: 0);
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('fetchInvites', (result) => {
result.items // массив списка инвайтов
result.canLoadMore // можно ли подгрузить еще инвайты
result.items.forEach((invite) => {
// все поля инвайта
// поля канала, в который приглашают
invite.channel
invite.channel.id
invite.channel.tags
invite.channel.projectId
invite.channel.capacity
invite.channel.ownerId
invite.channel.name
invite.channel.description
invite.channel.private
invite.channel.visible
invite.channel.hasPassword
invite.channel.membersCount
// Публичные поля игрока, который приглашает
invite.playerFrom
invite.playerFrom.id
invite.playerFrom.name
invite.playerFrom.avatar
// и другие публичные поля
// дата отправки приглашения, ISO 8601
invite.date
});
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchInvites += OnFetchInvites;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchInvites -= OnFetchInvites;
}
private void OnFetchInvites(GP_Data data, bool canLoadMore)
{
var fetchInvitesData = data.GetList<FetchInvitesData>();
Debug.Log("FETCH INVITES: CAN LOAD MORE: " + canLoadMore);
for (int i = 0; i < fetchInvitesData.Count; i++)
{
Debug.Log("FETCH INVITES: CHANNEL: ID: " + fetchInvitesData[i].channel.id);
for (int x = 0; x < fetchInvitesData[i].channel.tags.Length; x++)
{
Debug.Log("FETCH INVITES: CHANNEL: TAGS: " + fetchInvitesData[i].channel.tags[x]);
}
for (int a = 0; a < fetchInvitesData[i].channel.messageTags.Length; a++)
{
Debug.Log("FETCH INVITES: CHANNEL: MESSAGE TAGS: " + fetchInvitesData[i].channel.messageTags[a]);
}
Debug.Log("FETCH INVITES: CHANNEL: TEMPLATE ID: " + fetchInvitesData[i].channel.templateId);
Debug.Log("FETCH INVITES: CHANNEL: PROJECT ID: " + fetchInvitesData[i].channel.projectId);
Debug.Log("FETCH INVITES: CHANNEL: CAPACITY: " + fetchInvitesData[i].channel.capacity);
Debug.Log("FETCH INVITES: CHANNEL: OWNER ID: " + fetchInvitesData[i].channel.ownerId);
Debug.Log("FETCH INVITES: CHANNEL: NAME: " + fetchInvitesData[i].channel.name);
Debug.Log("FETCH INVITES: CHANNEL: DESCRIPTION: " + fetchInvitesData[i].channel.description);
Debug.Log("FETCH INVITES: CHANNEL: PRIVATE: " + fetchInvitesData[i].channel.ch_private);
Debug.Log("FETCH INVITES: CHANNEL: VISIBLE: " + fetchInvitesData[i].channel.visible);
Debug.Log("FETCH INVITES: CHANNEL: PERMANENT: " + fetchInvitesData[i].channel.permanent);
Debug.Log("FETCH INVITES: CHANNEL: HAS PASSWORD: " + fetchInvitesData[i].channel.hasPassword);
Debug.Log("FETCH INVITES: CHANNEL: PASSWORD: " + fetchInvitesData[i].channel.password);
Debug.Log("FETCH INVITES: CHANNEL: IS JOINED: " + fetchInvitesData[i].channel.isJoined);
Debug.Log("FETCH INVITES: CHANNEL: IS INVITED: " + fetchInvitesData[i].channel.isInvited);
Debug.Log("FETCH INVITES: CHANNEL: IS MUTED: " + fetchInvitesData[i].channel.isMuted);
Debug.Log("FETCH INVITES: CHANNEL: IS REQUEST SENT: " + fetchInvitesData[i].channel.isRequestSent);
Debug.Log("FETCH INVITES: CHANNEL: MEMBERS COUNT: " + fetchInvitesData[i].channel.membersCount);
Debug.Log("FETCH INVITES: CHANNEL: OWNER ACL: " + JsonUtility.ToJson(fetchInvitesData[i].channel.ownerAcl));
Debug.Log("FETCH INVITES: CHANNEL: MEMBER ACL: " + JsonUtility.ToJson(fetchInvitesData[i].channel.memberAcl));
Debug.Log("FETCH INVITES: CHANNEL: GUEST ACL: " + JsonUtility.ToJson(fetchInvitesData[i].channel.guestAcl));
Debug.Log("FETCH INVITES: PLAYER FROM: AVATAR: " + fetchInvitesData[i].playerFrom.avatar);
Debug.Log("FETCH INVITES: PLAYER FROM: CREDITIALS: " + fetchInvitesData[i].playerFrom.credentials);
Debug.Log("FETCH INVITES: PLAYER FROM: ID: " + fetchInvitesData[i].playerFrom.id);
Debug.Log("FETCH INVITES: PLAYER FROM: NAME: " + fetchInvitesData[i].playerFrom.name);
Debug.Log("FETCH INVITES: PLAYER FROM: PLATFORM TYPE: " + fetchInvitesData[i].playerFrom.platformType);
Debug.Log("FETCH INVITES: PLAYER FROM: PROJECT ID: " + fetchInvitesData[i].playerFrom.projectId);
Debug.Log("FETCH INVITES: PLAYER FROM: SCORE: " + fetchInvitesData[i].playerFrom.score);
}
}
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:fetchInvites', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchInvitesError += OnFetchInvitesError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchInvitesError -= OnFetchInvitesError;
}
// завершен с ошибкой
private void OnFetchInvitesError() => Debug.Log("FETCH INVITES: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки |
---|
player_not_found |
project_not_found |
origin_not_allowed |
player_banned |
internal_error |
Чтобы подгрузить еще инвайты по такому же запросу, существует удобный метод:
- JavaScript
- Unity
const response = await gp.channels.fetchMoreInvites({
// сколько запросить за раз, макс. 100
limit: 100,
});
// limit - сколько запросить за раз, макс. 100
GP_Channels.FetchMoreInvites(limit: 100);
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('fetchMoreInvites', (result) => {
result.items - массив списка инвайтов
result.canLoadMore - можно ли подгрузить еще инвайты
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchMoreInvites += OnFetchMoreInvites;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchMoreInvites -= OnFetchMoreInvites;
}
private void OnFetchMoreInvites(GP_Data data, bool canLoadMore)
{
var fetchInvitesData = data.GetList<FetchInvitesData>();
Debug.Log("FETCH MORE INVITES: INVITES COUNT: " + fetchInvitesData.Count);
Debug.Log("FETCH MORE INVITES: CAN LOAD MORE: " + canLoadMore);
}
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:fetchMoreInvites', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchMoreInvitesError += OnFetchMoreInvitesError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchMoreInvitesError -= OnFetchMoreInvitesError;
}
// завершен с ошибкой
private void OnFetchMoreInvitesError() => Debug.Log("FETCH MORE INVITES: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки |
---|
player_not_found |
project_not_found |
origin_not_allowed |
player_banned |
internal_error |
Получить список отправленных приглашений из канала
+1 RequestС помощью метода gp.channels.fetchChannelInvites
вы можете получить список всех разосланных приглашений в выбранном канале:
- JavaScript
- Unity
const response = await gp.channels.fetchChannelInvites({
// ID канала
channelId: 123,
// сколько запросить за раз, макс. 100
limit: 100,
// сколько записей пропустить, макс. 10000, используется для постраничной навигации или "подгрузить еще"
offset: 0
});
// limit - сколько запросить за раз, макс. 100
// offset - сколько записей пропустить, макс. 10000, используется для постраничной навигации или "подгрузить еще"
GP_Channels.FetchChannelInvites(channel_ID: 123, limit: 50, offset: 0);
Обязательно наличие права доступа Разрешить приглашать других игроков
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('fetchChannelInvites', (result) => {
result.items - массив списка инвайтов
result.canLoadMore - можно ли подгрузить еще инвайты
result.items.forEach((invite) => {
// все поля инвайта
// Публичные поля игрока, который приглашает
invite.playerFrom
invite.playerFrom.id
invite.playerFrom.name
invite.playerFrom.avatar
// и другие публичные поля
// Публичные поля игрока, который приглашен
invite.playerTo
invite.playerTo.id
invite.playerTo.name
invite.playerTo.avatar
// и другие публичные поля
// дата отправки приглашения, ISO 8601
invite.date
});
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchChannelInvites += OnFetchChannelInvites;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchChannelInvites -= OnFetchChannelInvites;
}
private void OnFetchChannelInvites(GP_Data data, bool canLoadMore)
{
var fetchChannelInvites = data.GetList<FetchChannelInvitesData>();
Debug.Log("FETCH CHANNEL INVITES: CAN LOAD MORE: " + canLoadMore);
for (int i = 0; i < fetchChannelInvites.Count; i++)
{
Debug.Log("FETCH CHANNEL INVITES: DATE: " + fetchChannelInvites[i].date);
Debug.Log("FETCH CHANNEL INVITES: PLAYER FROM: AVATAR: " + fetchChannelInvites[i].playerFrom.avatar);
Debug.Log("FETCH CHANNEL INVITES: PLAYER FROM: CREDITIALS: " + fetchChannelInvites[i].playerFrom.credentials);
Debug.Log("FETCH CHANNEL INVITES: PLAYER FROM: ID: " + fetchChannelInvites[i].playerFrom.id);
Debug.Log("FETCH CHANNEL INVITES: PLAYER FROM: NAME: " + fetchChannelInvites[i].playerFrom.name);
Debug.Log("FETCH CHANNEL INVITES: PLAYER FROM: PLATFORM TYPE: " + fetchChannelInvites[i].playerFrom.platformType);
Debug.Log("FETCH CHANNEL INVITES: PLAYER FROM: PROJECT ID: " + fetchChannelInvites[i].playerFrom.projectId);
Debug.Log("FETCH CHANNEL INVITES: PLAYER FROM: SCORE: " + fetchChannelInvites[i].playerFrom.score);
Debug.Log("FETCH CHANNEL INVITES: PLAYER TO: AVATAR: " + fetchChannelInvites[i].playerTo.avatar);
Debug.Log("FETCH CHANNEL INVITES: PLAYER TO: CREDITIALS: " + fetchChannelInvites[i].playerTo.credentials);
Debug.Log("FETCH CHANNEL INVITES: PLAYER TO: ID: " + fetchChannelInvites[i].playerTo.id);
Debug.Log("FETCH CHANNEL INVITES: PLAYER TO: NAME: " + fetchChannelInvites[i].playerTo.name);
Debug.Log("FETCH CHANNEL INVITES: PLAYER TO: PLATFORM TYPE: " + fetchChannelInvites[i].playerTo.platformType);
Debug.Log("FETCH CHANNEL INVITES: PLAYER TO: PROJECT ID: " + fetchChannelInvites[i].playerTo.projectId);
Debug.Log("FETCH CHANNEL INVITES: PLAYER TO: SCORE: " + fetchChannelInvites[i].playerTo.score);
}
}
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:fetchChannelInvites', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchChannelInvitesError += OnFetchChannelInvitesError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchChannelInvitesError -= OnFetchChannelInvitesError;
}
// завершен с ошибкой
private void OnFetchChannelInvitesError() => Debug.Log("FETCH CHANNEL INVITES: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки | сценарные ошибки |
---|---|
player_not_found | empty_channel_id |
project_not_found | channel_not_found |
origin_not_allowed | access_denied |
player_banned | |
internal_error |
Чтобы подгрузить еще инвайты по такому же запросу, есть удобный метод:
- JavaScript
- Unity
const response = await gp.channels.fetchMoreChannelInvites({
channelId: 123,
// сколько запросить за раз, макс. 100
limit: 100,
});
// limit - сколько запросить за раз, макс. 100
GP_Channels.FetchMoreChannelInvites(channel_ID: 123, limit: 100);
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('fetchMoreChannelInvites', (result) => {
result.items - массив списка инвайтов
result.canLoadMore - можно ли подгрузить еще инвайты
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchMoreChannelInvites += OnFetchMoreChannelInvites;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchMoreChannelInvites -= OnFetchMoreChannelInvites;
}
private void OnFetchMoreChannelInvites(GP_Data data, bool canLoadMore)
{
var fetchChannelInvites = data.GetList<FetchChannelInvitesData>();
Debug.Log("FETCH MORE CHANNEL INVITES: CHANNEK INVITES COUNT: " + fetchChannelInvites.Counte);
Debug.Log("FETCH MORE CHANNEL INVITES: CAN LOAD MORE: " + canLoadMore);
}
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:fetchMoreChannelInvites', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchMoreChannelInvitesError += OnFetchMoreChannelInvitesError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchMoreChannelInvitesError -= OnFetchMoreChannelInvitesError;
}
// завершен с ошибкой
private void OnFetchMoreChannelInvitesError() => Debug.Log("FETCH MORE CHANNEL INVITES: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки | сценарные ошибки |
---|---|
player_not_found | empty_channel_id |
project_not_found | channel_not_found |
origin_not_allowed | access_denied |
player_banned | |
internal_error |
Получить список разосланных приглашений игрокам в каналы
+1 RequestПолучить список разосланных приглашений игрокам в каналы можно с помощью метода gp.channels.fetchSentInvites
:
- JavaScript
- Unity
const response = await gp.channels.fetchSentInvites({
// сколько запросить за раз, макс. 100
limit: 100,
// сколько записей пропустить, макс. 10000, используется для постраничной навигации или "подгрузить еще"
offset: 0
});
// limit - сколько запросить за раз, макс. 100
// offset - сколько записей пропустить, макс. 10000, используется для постраничной навигации или "подгрузить еще"
GP_Channels.FetchSentInvites(channelId: 123, limit: 100, offset: 0);
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('fetchSentInvites', (result) => {
result.items - массив списка инвайтов
result.canLoadMore - можно ли подгрузить еще инвайты
result.items.forEach((invite) => {
// все поля инвайта
// поля канала, в который приглашается другой игрок
invite.channel
invite.channel.id
invite.channel.tags
invite.channel.projectId
invite.channel.capacity
invite.channel.ownerId
invite.channel.name
invite.channel.description
invite.channel.private
invite.channel.visible
invite.channel.hasPassword
invite.channel.membersCount
// Публичные поля игрока, который приглашен
invite.playerTo
invite.playerTo.id
invite.playerTo.name
invite.playerTo.avatar
// и другие публичные поля
// дата отправки приглашения, ISO 8601
invite.date
});
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchSentInvites += OnFetchSentInvites;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchSentInvites -= OnFetchSentInvites;
}
private void OnFetchSentInvites(GP_Data data, bool canLoadMore)
{
var fetchSentInvites = data.GetList<FetchSentInvitesData>();
Debug.Log("FETCH SENT INVITES: CAN LOAD MORE: " + canLoadMore);
for (int i = 0; i < fetchSentInvites.Count; i++)
{
Debug.Log("FETCH SENT INVITES: DATE: " + fetchSentInvites[i].date);
Debug.Log("FETCH SENT INVITES: CHANNEL: ID: " + fetchSentInvites[i].channel.id);
for (int x = 0; x < fetchSentInvites[i].channel.tags.Length; x++)
{
Debug.Log("FETCH SENT INVITES: CHANNEL: TAGS: " + fetchSentInvites[i].channel.tags[x]);
}
for (int a = 0; a < fetchSentInvites[i].channel.messageTags.Length; a++)
{
Debug.Log("FETCH SENT INVITES: CHANNEL: MESSAGE TAGS: " + fetchSentInvites[i].channel.messageTags[a]);
}
Debug.Log("FETCH SENT INVITES: CHANNEL: TEMPLATE ID: " + fetchSentInvites[i].channel.templateId);
Debug.Log("FETCH SENT INVITES: CHANNEL: PROJECT ID: " + fetchSentInvites[i].channel.projectId);
Debug.Log("FETCH SENT INVITES: CHANNEL: CAPACITY: " + fetchSentInvites[i].channel.capacity);
Debug.Log("FETCH SENT INVITES: CHANNEL: OWNER ID: " + fetchSentInvites[i].channel.ownerId);
Debug.Log("FETCH SENT INVITES: CHANNEL: NAME: " + fetchSentInvites[i].channel.name);
Debug.Log("FETCH SENT INVITES: CHANNEL: DESCRIPTION: " + fetchSentInvites[i].channel.description);
Debug.Log("FETCH SENT INVITES: CHANNEL: PRIVATE: " + fetchSentInvites[i].channel.ch_private);
Debug.Log("FETCH SENT INVITES: CHANNEL: VISIBLE: " + fetchSentInvites[i].channel.visible);
Debug.Log("FETCH SENT INVITES: CHANNEL: PERMANENT: " + fetchSentInvites[i].channel.permanent);
Debug.Log("FETCH SENT INVITES: CHANNEL: HAS PASSWORD: " + fetchSentInvites[i].channel.hasPassword);
Debug.Log("FETCH SENT INVITES: CHANNEL: PASSWORD: " + fetchSentInvites[i].channel.password);
Debug.Log("FETCH SENT INVITES: CHANNEL: IS JOINED: " + fetchSentInvites[i].channel.isJoined);
Debug.Log("FETCH SENT INVITES: CHANNEL: IS INVITED: " + fetchSentInvites[i].channel.isInvited);
Debug.Log("FETCH SENT INVITES: CHANNEL: IS MUTED: " + fetchSentInvites[i].channel.isMuted);
Debug.Log("FETCH SENT INVITES: CHANNEL: IS REQUEST SENT: " + fetchSentInvites[i].channel.isRequestSent);
Debug.Log("FETCH SENT INVITES: CHANNEL: MEMBERS COUNT: " + fetchSentInvites[i].channel.membersCount);
Debug.Log("FETCH SENT INVITES: CHANNEL: OWNER ACL: " + JsonUtility.ToJson(fetchSentInvites[i].channel.ownerAcl));
Debug.Log("FETCH SENT INVITES: CHANNEL: MEMBER ACL: " + JsonUtility.ToJson(fetchSentInvites[i].channel.memberAcl));
Debug.Log("FETCH SENT INVITES: CHANNEL: GUEST ACL: " + JsonUtility.ToJson(fetchSentInvites[i].channel.guestAcl));
Debug.Log("FETCH SENT INVITES: PLAYER TO: AVATAR: " + fetchSentInvites[i].playerTo.avatar);
Debug.Log("FETCH SENT INVITES: PLAYER TO: CREDITIALS: " + fetchSentInvites[i].playerTo.credentials);
Debug.Log("FETCH SENT INVITES: PLAYER TO: ID: " + fetchSentInvites[i].playerTo.id);
Debug.Log("FETCH SENT INVITES: PLAYER TO: NAME: " + fetchSentInvites[i].playerTo.name);
Debug.Log("FETCH SENT INVITES: PLAYER TO: PLATFORM TYPE: " + fetchSentInvites[i].playerTo.platformType);
Debug.Log("FETCH SENT INVITES: PLAYER TO: PROJECT ID: " + fetchSentInvites[i].playerTo.projectId);
Debug.Log("FETCH SENT INVITES: PLAYER TO: SCORE: " + fetchSentInvites[i].playerTo.score);
}
}
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:fetchSentInvites', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchSentInvitesError += OnFetchSentInvitesError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchSentInvitesError -= OnFetchSentInvitesError;
}
// завершен с ошибкой
private void OnFetchSentInvitesError() => ConsoleUI.Instance.Log("FETCH SENT INVITES: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки |
---|
player_not_found |
project_not_found |
origin_not_allowed |
player_banned |
internal_error |
Чтобы дополнительно подгрузить инвайты по такому же запросу используйте удобный метод gp.channels.fetchMoreSentInvites
:
- JavaScript
- Unity
const response = await gp.channels.fetchMoreSentInvites({
// сколько запросить за раз, макс. 100
limit: 100,
});
GP_Channels.FetchMoreSentInvites(channelId: 123, limit: 100);
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('fetchMoreSentInvites', (result) => {
result.items - массив списка инвайтов
result.canLoadMore - можно ли подгрузить еще инвайты
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchMoreSentInvites += OnFetchMoreSentInvites;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchMoreSentInvites -= OnFetchMoreSentInvites;
}
private void OnFetchMoreSentInvites(GP_Data data, bool canLoadMore)
{
var fetchSentInvites = data.GetList<FetchSentInvitesData>();
Debug.Log("FETCH MORE SENT INVITES: CAN LOAD MORE: " + canLoadMore);
for (int i = 0; i < fetchSentInvites.Count; i++)
{
Debug.Log("FETCH MORE SENT INVITES: DATE: " + fetchSentInvites[i].date);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: ID: " + fetchSentInvites[i].channel.id);
for (int x = 0; x < fetchSentInvites[i].channel.tags.Length; x++)
{
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: TAGS: " + fetchSentInvites[i].channel.tags[x]);
}
for (int a = 0; a < fetchSentInvites[i].channel.messageTags.Length; a++)
{
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: MESSAGE TAGS: " + fetchSentInvites[i].channel.messageTags[a]);
}
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: TEMPLATE ID: " + fetchSentInvites[i].channel.templateId);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: PROJECT ID: " + fetchSentInvites[i].channel.projectId);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: CAPACITY: " + fetchSentInvites[i].channel.capacity);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: OWNER ID: " + fetchSentInvites[i].channel.ownerId);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: NAME: " + fetchSentInvites[i].channel.name);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: DESCRIPTION: " + fetchSentInvites[i].channel.description);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: PRIVATE: " + fetchSentInvites[i].channel.ch_private);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: VISIBLE: " + fetchSentInvites[i].channel.visible);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: PERMANENT: " + fetchSentInvites[i].channel.permanent);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: HAS PASSWORD: " + fetchSentInvites[i].channel.hasPassword);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: PASSWORD: " + fetchSentInvites[i].channel.password);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: IS JOINED: " + fetchSentInvites[i].channel.isJoined);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: IS INVITED: " + fetchSentInvites[i].channel.isInvited);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: IS MUTED: " + fetchSentInvites[i].channel.isMuted);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: IS REQUEST SENT: " + fetchSentInvites[i].channel.isRequestSent);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: MEMBERS COUNT: " + fetchSentInvites[i].channel.membersCount);
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: OWNER ACL: " + JsonUtility.ToJson(fetchSentInvites[i].channel.ownerAcl));
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: MEMBER ACL: " + JsonUtility.ToJson(fetchSentInvites[i].channel.memberAcl));
Debug.Log("FETCH MORE SENT INVITES: CHANNEL: GUEST ACL: " + JsonUtility.ToJson(fetchSentInvites[i].channel.guestAcl));
Debug.Log("FETCH MORE SENT INVITES: PLAYER TO: AVATAR: " + fetchSentInvites[i].playerTo.avatar);
Debug.Log("FETCH MORE SENT INVITES: PLAYER TO: CREDITIALS: " + fetchSentInvites[i].playerTo.credentials);
Debug.Log("FETCH MORE SENT INVITES: PLAYER TO: ID: " + fetchSentInvites[i].playerTo.id);
Debug.Log("FETCH MORE SENT INVITES: PLAYER TO: NAME: " + fetchSentInvites[i].playerTo.name);
Debug.Log("FETCH MORE SENT INVITES: PLAYER TO: PLATFORM TYPE: " + fetchSentInvites[i].playerTo.platformType);
Debug.Log("FETCH MORE SENT INVITES: PLAYER TO: PROJECT ID: " + fetchSentInvites[i].playerTo.projectId);
Debug.Log("FETCH MORE SENT INVITES: PLAYER TO: SCORE: " + fetchSentInvites[i].playerTo.score);
}
}
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:fetchMoreSentInvites', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchMoreSentInvitesError += OnFetchMoreSentInvitesError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchMoreSentInvitesError -= OnFetchMoreSentInvitesError;
}
// завершен с ошибкой
private void OnFetchMoreSentInvitesError() => Debug.Log("FETCH MORE SENT INVITES: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки |
---|
player_not_found |
project_not_found |
origin_not_allowed |
player_banned |
internal_error |
Оставайтесь на связи
С другими разделами документации вы можете ознакомиться здесь. Для начала работы вы можете ознакомиться с нашими туториалами.
Сообщество GamePush в Telegram
: @gs_community.
Для ваших обращений e-mail
: [email protected]
Желаем вам успехов!