Сообщения
Обзор
Игроки в канале могут обмениваться сообщениями. При этом возможно реализовать отправку личного сообщения, а также сообщений в фид или канал. Реализованы методы, которые позволяют изменять и удалять отправленные сообщения. С помощью сообщений также может быть реализована отправка подарков игрокам или даже пошаговое сражение.
В этом разделе рассматриваются методы для работы с сообщениями. Сервис позволяет отправлять, изменять, удалять сообщения и многое другое:
gp.channels.sendMessage
- отправка сообщения в канал +1 Requestgp.channels.sendPersonalMessage
- отправка личного сообщения игроку +1 Requestgp.channels.sendFeedMessage
- отправка сообщения в фид +1 Requestgp.channels.editMessage
- изменить отправленное сообщение +1 Requestgp.channels.deleteMessage
- удалить отправленное сообщение +1 Requestgp.channels.fetchMessages
- получить список сообщений в выбранном канале +1 Requestgp.channels.fetchMoreMessages
- дополнительно подгрузить сообщения в канале +1 Requestgp.channels.fetchPersonalMessages
- получить список личных сообщений +1 Requestgp.channels.fetchMorePersonalMessages
- дополнительно подгрузить личные сообщения +1 Requestgp.channels.fetchFeedMessages
- получить список сообщений в фиде игрока +1 Requestgp.channels.fetchMoreFeedMessages
- дополнительно подгрузить сообщения в фиде +1 Request
Отправка сообщения
+1 RequestДля отправки сообщения Hello!
в канал channelId: 123
используется метод gp.channels.sendMessage
:
- JavaScript
- Unity
gp.channels.sendMessage({
// ID канала
channelId: 123,
// текст сообщения
text: 'Hello!',
// теги сообщения для удобной фильтрации, необязательно
tags: ['chat', 'trade'],
});
GP_Channels.SendMessage(
// ID канала
channel_ID: 123,
// текст сообщения
text: "Hello!",
// теги сообщения для удобной фильтрации, необязательно
tags: "chat, trade"
);
Отправка личного сообщения и в фид игрока
+1 RequestСуществует возможность отправки личного сообщения игроку и отправки сообщения в фид.
Фид - публичный канал игрока, в который может отправить сообщение любой участник канала
Для отправки личного сообщения Hello!
игроку playerId: 123456
используется метод gp.channels.sendPersonalMessage
:
- JavaScript
- Unity
gp.channels.sendPersonalMessage({
// ID игрока
playerId: 123,
// текст сообщения
text: 'Hello!',
// теги сообщения для удобной фильтрации, необязательно
tags: ['chat', 'trade'],
});
GP_Channels.SendPersonalMessage(
// ID игрока
player_ID: 123,
// текст сообщения
text: "Hello!",
// теги сообщения для удобной фильтрации, необязательно
tags: "chat, trade"
);
Для отправки сообщения в фид gp.channels.sendFeedMessage
:
- JavaScript
- Unity
gp.channels.sendFeedMessage({
// ID игрока
playerId: 123,
// текст сообщения
text: 'Hello!',
// теги сообщения для удобной фильтрации, необязательно
tags: ['chat', 'trade'],
});
GP_Channels.SendFeedMessage(
// ID игрока
player_ID: 123,
// текст сообщения
text: "Hello!",
// теги сообщения для удобной фильтрации, необязательно
tags: "chat, trade"
);
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('sendMessage', (message) => {
// успешно отправлено
// ID сообщения, его можно использовать, чтобы редактировать или удалять сообщение
message.id;
// ID канала
message.channelId;
// ID автора сообщения
message.authorId;
// Текст сообщения
message.text;
// Теги сообщения
message.tags;
// Публичные поля игрока - отправителя сообщения
message.player;
// Время отправки сообщения
message.createdAt;
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnSendMessage += OnSendMessage;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnSendMessage -= OnSendMessage;
}
// успешно отправлено
private void OnSendMessage(GP_Data data)
{
var sendMessageData = data.Get<Message_Data>();
Debug.Log("SEND MESSAGE: CHANNEL ID: " + sendMessageData.channelId);
Debug.Log("SEND MESSAGE: AUTHOR ID: " + sendMessageData.authorId);
Debug.Log("SEND MESSAGE: ID: " + sendMessageData.id);
Debug.Log("SEND MESSAGE: TEXT: " + sendMessageData.text);
for (int i = 0; i < sendMessageData.tags.Length; i++)
{
Debug.Log("SEND MESSAGE: TAGS: " + sendMessageData.tags[i]);
}
Debug.Log("SEND MESSAGE: CREATED AT: " + sendMessageData.createdAt);
Debug.Log("SEND MESSAGE: PLAYER: AVATAR: " + sendMessageData.player.avatar);
Debug.Log("SEND MESSAGE: PLAYER: CREDITIALS: " + sendMessageData.player.credentials);
Debug.Log("SEND MESSAGE: PLAYER: ID: " + sendMessageData.player.id);
Debug.Log("SEND MESSAGE: PLAYER: NAME: " + sendMessageData.player.name);
Debug.Log("SEND MESSAGE: PLAYER: PLATFORM TYPE: " + sendMessageData.player.platformType);
Debug.Log("SEND MESSAGE: PLAYER: PROJECT ID: " + sendMessageData.player.projectId);
Debug.Log("SEND MESSAGE: PLAYER: SCORE: " + sendMessageData.player.score);
}
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:sendMessage', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnSendMessageError += OnSendMessageError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnSendMessageError -= OnSendMessageError;
}
// завершен с ошибкой
private void OnSendMessageError() => Debug.Log("SEND MESSAGE: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки | сценарные ошибки | сценарные только для sendMessage |
---|---|---|
player_not_found | empty_message | empty_channel_id |
project_not_found | access_denied | channel_not_found |
origin_not_allowed | message_characters_limit_exceeds | |
player_banned | ||
internal_error |
При отправке сообщения всем игрокам в канале приходит уведомление о новом сообщении:
- JavaScript
- Unity
gp.channels.on('event:message', (message) => {
// ID канала
message.channelId;
// ID сообщения
message.id;
// ID автора сообщения
message.authorId;
// Поля автора (аватар, имя, кастомные поля)
message.player;
// Текст сообщения
message.text;
// Теги сообщения
message.tags;
// Дата отправки сообщения
message.createdAt;
// Назначение сообщения: 'CHANNEL' | 'PERSONAL' | 'FEED'
message.target;
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnMessage += OnMessage;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnMessage -= OnMessage;
}
private void OnMessage(GP_Data data)
{
var messageData = data.Get<Message_Data>();
Debug.Log("ON MESSAGE EVENT: CHANNEL ID: " + messageData.channelId);
Debug.Log("ON MESSAGE EVENT: AUTHOR ID: " + messageData.authorId);
Debug.Log("ON MESSAGE EVENT: ID: " + messageData.id);
Debug.Log("ON MESSAGE EVENT: TEXT: " + messageData.text);
for (int i = 0; i < messageData.tags.Length; i++)
{
Debug.Log("ON MESSAGE EVENT: TAGS: " + messageData.tags[i]);
}
Debug.Log("ON MESSAGE EVENT: CREATED AT: " + messageData.createdAt);
Debug.Log("ON MESSAGE EVENT: PLAYER: AVATAR: " + messageData.player.avatar);
Debug.Log("ON MESSAGE EVENT: PLAYER: CREDITIALS: " + messageData.player.credentials);
Debug.Log("ON MESSAGE EVENT: PLAYER: ID: " + messageData.player.id);
Debug.Log("ON MESSAGE EVENT: PLAYER: NAME: " + messageData.player.name);
Debug.Log("ON MESSAGE EVENT: PLAYER: PLATFORM TYPE: " + messageData.player.platformType);
Debug.Log("ON MESSAGE EVENT: PLAYER: PROJECT ID: " + messageData.player.projectId);
Debug.Log("ON MESSAGE EVENT: PLAYER: SCORE: " + messageData.player.score);
}
Вы можете обратить внимание на message.target
:
CHANNEL
: в канале появилось новое сообщениеPERSONAL
: игроку написали в личные сообщенияFEED
: игроку написали в фид
Изменение сообщения
+1 RequestИзменение отправленного сообщения реализуется с помощью метода gp.channels.editMessage
по идентификатору messageId
:
- JavaScript
- Unity
gp.channels.editMessage({ messageId: '638d73ee28520fc3b551a8ac', text: 'Hello!' });
GP_Channels.EditMessage(message_ID: "638d73ee28520fc3b551a8ac", text: "Hello!");
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('editMessage', (message) => {
// успешно обновлено
// ID сообщения, его можно использовать, чтобы редактировать или удалять сообщение
message.id;
// ID канала
message.channelId;
// ID автора сообщения
message.authorId;
// Текст сообщения
message.text;
// Теги сообщения
message.tags;
// Публичные поля игрока - отправителя сообщения
message.player;
// Время отправки сообщения
message.createdAt;
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnEditMessageSuccess += OnEditMessageSuccess;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnEditMessageSuccess -= OnEditMessageSuccess;
}
// успешно обновлено
private void OnEditMessageSuccess(GP_Data data)
{
var editMessageData = data.Get<Message_Data>();
Debug.Log("EDIT MESSAGE SUCCESS: CHANNEL ID: " + editMessageData.channelId);
Debug.Log("EDIT MESSAGE SUCCESS: AUTHOR ID: " + editMessageData.authorId);
Debug.Log("EDIT MESSAGE SUCCESS: ID: " + editMessageData.id);
Debug.Log("EDIT MESSAGE SUCCESS: TEXT: " + editMessageData.text);
for (int i = 0; i < editMessageData.tags.Length; i++)
{
Debug.Log("EDIT MESSAGE SUCCESS: TAGS: " + editMessageData.tags[i]);
}
Debug.Log("EDIT MESSAGE SUCCESS: CREATED AT: " + editMessageData.createdAt);
Debug.Log("EDIT MESSAGE SUCCESS: PLAYER: AVATAR " + editMessageData.player.avatar);
Debug.Log("EDIT MESSAGE SUCCESS: PLAYER: CREDITIALS " + editMessageData.player.credentials);
Debug.Log("EDIT MESSAGE SUCCESS: PLAYER: ID " + editMessageData.player.id);
Debug.Log("EDIT MESSAGE SUCCESS: PLAYER: NAME " + editMessageData.player.name);
Debug.Log("EDIT MESSAGE SUCCESS: PLAYER: PLATFORM TYPE " + editMessageData.player.platformType);
Debug.Log("EDIT MESSAGE SUCCESS: PLAYER: PROJECT ID " + editMessageData.player.projectId);
Debug.Log("EDIT MESSAGE SUCCESS: PLAYER: SCORE " + editMessageData.player.score);
}
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:editMessage', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnEditMessageError += OnEditMessageError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnEditMessageError -= OnEditMessageError;
}
// завершен с ошибкой
private void OnEditMessageError() => Debug.Log("EDIT MESSAGE: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки | сценарные ошибки |
---|---|
player_not_found | channel_message_not_found |
project_not_found | empty_message |
origin_not_allowed | access_denied |
player_banned | message_characters_limit_exceeds |
internal_error |
При изменении сообщения всем игрокам в канале приходит уведомление об изменении сообщения:
- JavaScript
- Unity
gp.channels.on('event:editMessage', (message) => {
// ID канала
message.channelId;
// ID сообщения
message.id;
// ID автора сообщения
message.authorId;
// Текст сообщения
message.text;
// Теги сообщения
message.tags;
// Дата отправки сообщения
message.createdAt;
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnEditMessageEvent += OnEditMessageEvent;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnEditMessageEvent -= OnEditMessageEvent;
}
private void OnEditMessageEvent(MessageData data)
{
Debug.Log("EDIT MESSAGE EVENT: CHANNEL ID: " + data.channelId);
Debug.Log("EDIT MESSAGE EVENT: AUTHOR ID: " + data.authorId);
Debug.Log("EDIT MESSAGE EVENT: ID: " + data.id);
Debug.Log("EDIT MESSAGE EVENT: TEXT: " + data.text);
Debug.Log("EDIT MESSAGE EVENT: CREATED AT: " + data.createdAt);
for (int i = 0; i < data.tags.Length; i++)
{
Debug.Log("EDIT MESSAGE EVENT: TAGS: " + data.tags[i]);
}
}
Удаление сообщения
+1 RequestУдаление отправленного сообщения реализуется с помощью метода gp.channels.deleteMessage
по идентификатору messageId
:
- JavaScript
- Unity
gp.channels.deleteMessage({ messageId: '638d73ee28520fc3b551a8ac' });
GP_Channels.DeleteMessage(message_ID: "638d73ee28520fc3b551a8ac");
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('deleteMessage', () => {
// успешно удалено
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnDeleteMessageSuccess += OnDeleteMessageSuccess;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnDeleteMessageSuccess -= OnDeleteMessageSuccess;
}
// успешно удалено
private void OnDeleteMessageSuccess() => Debug.Log("DELETE MESSAGE: Success");
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:deleteMessage', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnDeleteMessageError += OnDeleteMessageError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnDeleteMessageError -= OnDeleteMessageError;
}
// завершен с ошибкой
private void OnDeleteMessageError() => Debug.Log("DELETE MESSAGE: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки | сценарные ошибки |
---|---|
player_not_found | channel_message_not_found |
project_not_found | access_denied |
origin_not_allowed | |
player_banned | |
internal_error |
При удалении сообщения всем игрокам в канале приходит уведомление об удалении сообщения:
- JavaScript
- Unity
gp.channels.on('event:deleteMessage', (message) => {
// ID канала
message.channelId;
// ID сообщения
message.id;
// ID автора сообщения
message.authorId;
// Текст сообщения
message.text;
// Теги сообщения
message.tags;
// Дата отправки сообщения
message.createdAt;
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnDeleteMessageEvent += OnDeleteMessageEvent;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnDeleteMessageEvent -= OnDeleteMessageEvent;
}
private void OnDeleteMessageEvent(MessageData data)
{
Debug.Log("DELETE MESSAGE EVENT: ID: " + data.id);
Debug.Log("DELETE MESSAGE EVENT: CHANNEL ID: " + data.channelId);
Debug.Log("DELETE MESSAGE EVENT: AUTHOR ID: " + data.authorId);
Debug.Log("DELETE MESSAGE EVENT: TEXT: " + data.text);
Debug.Log("DELETE MESSAGE EVENT: CREATED AT: " + data.createdAt);
for (int i = 0; i < data.tags.Length; i++)
{
Debug.Log("DELETE MESSAGE EVENT: TAGS: " + data.tags[i]);
}
}
Получить список сообщений в выбранном канале
+1 RequestОбязательно наличие права доступа Разрешить читать сообщения
Получить список сообщений в выбранном канале можно с помощью метода gp.channels.fetchMessages
:
- JavaScript
- Unity
const response = await gp.channels.fetchMessages({
// ID канала
channelId: 123,
// Теги сообщений для фильтрации, через И (&)
tags: ['chat', 'trade'],
// сколько запросить за раз, макс. 100
limit: 100,
// сколько записей пропустить, макс. 10000, используется для постраничной навигации или "подгрузить еще"
offset: 0,
});
GP_Channels.FetchMessages(
// ID канала
channel_ID: 123,
// Теги сообщений для фильтрации, через И (&)
tags: "chat, trade",
// сколько запросить за раз, макс. 100
limit: 100,
// сколько записей пропустить, макс. 10000, используется для постраничной навигации или "подгрузить еще"
offset: 0
);
Получить список личных сообщений с другим игроком:
- JavaScript
- Unity
const response = await gp.channels.fetchPersonalMessages({
// ID другого игрока
playerId: 123456,
// Теги сообщений для фильтрации, через И (&)
tags: ['chat', 'trade'],
// сколько запросить за раз, макс. 100
limit: 100,
// сколько записей пропустить, макс. 10000, используется для постраничной навигации или "подгрузить еще"
offset: 0,
});
GP_Channels.FetchPersonalMessages(
// ID другого игрока
playerId: 123456,
// Теги сообщений для фильтрации, через И (&)
tags: "chat, trade",
// сколько запросить за раз, макс. 100
limit: 100,
// сколько записей пропустить, макс. 10000, используется для постраничной навигации или "подгрузить еще"
offset: 0
);
Получить список сообщений в фиде игрока:
- JavaScript
- Unity
const response = await gp.channels.fetchFeedMessages({
// ID игрока
playerId: 123456,
// Теги сообщений для фильтрации, через И (&)
tags: ['chat', 'trade'],
// сколько запросить за раз, макс. 100
limit: 100,
// сколько записей пропустить, макс. 10000, используется для постраничной навигации или "подгрузить еще"
offset: 0,
});
GP_Channels.FetchFeedMessages(
// ID игрока
playerId: 123456,
// Теги сообщений для фильтрации, через И (&)
tags: "chat, trade",
// сколько запросить за раз, макс. 100
limit: 100,
// сколько записей пропустить, макс. 10000, используется для постраничной навигации или "подгрузить еще"
offset: 0
);
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('fetchMessages', (result) => {
result.items - массив списка сообщений
result.canLoadMore - можно ли подгрузить еще сообщения
result.items.forEach((message) => {
// все поля сообщения
// ID сообщения, его можно использовать, чтобы редактировать или удалять сообщение
message.id
// ID канала
message.channelId
// ID игрока - автора сообщения
message.authorId
// текст сообщения
message.text
// теги сообщения
message.tags
// Публичные поля автора сообщения
message.player
message.player.id
message.player.name
message.player.avatar
// и другие публичные поля
// дата создания сообщения, ISO 8601
message.createdAt
});
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchMessages += OnFetchMessages;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchMessages -= OnFetchMessages;
}
private void OnFetchMessages(GP_Data data, bool canLoadMore)
{
var fetchMessageData = data.GetList<Message_Data>();
Debug.Log("FETCH MESSAGES: CAN LOAD MORE: " + canLoadMore);
for (int i = 0; i < fetchMessageData.Count; i++)
{
_chatUI.text += $"\n {fetchMessageData[i].text}";
Debug.Log("FETCH MESSAGES: CHANNEL ID: " + fetchMessageData[i].channelId);
Debug.Log("FETCH MESSAGES: AUTHOR ID: " + fetchMessageData[i].authorId);
Debug.Log("FETCH MESSAGES: ID " + fetchMessageData[i].id);
Debug.Log("FETCH MESSAGES: TEXT: " + fetchMessageData[i].text);
for (int x = 0; x < fetchMessageData[i].tags.Length; x++)
{
Debug.Log("FETCH MESSAGES: TAGS: " + fetchMessageData[i].tags[x]);
}
Debug.Log("FETCH MESSAGES: CREATED AT: " + fetchMessageData[i].createdAt);
Debug.Log("FETCH MESSAGES: PLAYER: AVATAR: " + fetchMessageData[i].player.avatar);
Debug.Log("FETCH MESSAGES: PLAYER: CREDITIALS: " + fetchMessageData[i].player.credentials);
Debug.Log("FETCH MESSAGES: PLAYER: ID: " + fetchMessageData[i].player.id);
Debug.Log("FETCH MESSAGES: PLAYER: NAME: " + fetchMessageData[i].player.name);
Debug.Log("FETCH MESSAGES: PLAYER: PLATFORM TYPE: " + fetchMessageData[i].player.platformType);
Debug.Log("FETCH MESSAGES: PLAYER: PROJECT ID: " + fetchMessageData[i].player.projectId);
Debug.Log("FETCH MESSAGES: PLAYER: SCORE: " + fetchMessageData[i].player.score);
}
}
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:fetchMessages', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchMessagesError += OnFetchMessagesError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchMessagesError -= OnFetchMessagesError;
}
private void OnFetchMessagesError() => Debug.Log("FETCH MESSAGES: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки | сценарные ошибки |
---|---|
player_not_found | empty_channel_id |
project_not_found | channel_not_found |
origin_not_allowed | access_denied |
player_banned | |
internal_error |
Чтобы дополнительно подгрузить сообщения в канале по такому же запросу, есть удобный метод gp.channels.fetchMoreMessages
:
- JavaScript
- Unity
const response = await gp.channels.fetchMoreMessages({
// ID канала
channelId: 123,
// Теги сообщений для фильтрации, через И (&)
tags: ['chat', 'trade'],
// сколько запросить за раз, макс. 100
limit: 100,
});
GP_Channels.FetchMoreMessages(
// ID канала
channel_ID: 123,
// Теги сообщений для фильтрации, через И (&)
tags: "chat, trade",
// сколько запросить за раз, макс. 100
limit: 100
);
Чтобы дополнительно подгрузить личные сообщения по такому же запросу, есть удобный метод gp.channels.fetchMorePersonalMessages
:
- JavaScript
- Unity
const response = await gp.channels.fetchMorePersonalMessages({
// ID другого игрока
playerId: 123456,
// Теги сообщений для фильтрации, через И (&)
tags: ['chat', 'trade'],
// сколько запросить за раз, макс. 100
limit: 100,
});
GP_Channels.FetchMorePersonalMessages(
// ID другого игрока
playerId: 123456,
// Теги сообщений для фильтрации, через И (&)
tags: "chat, trade",
// сколько запросить за раз, макс. 100
limit: 100
);
Чтобы дополнительно подгрузить сообщения в фиде по такому же запросу, есть удобный метод gp.channels.fetchMoreFeedMessages
:
- JavaScript
- Unity
const response = await gp.channels.fetchMoreFeedMessages({
// ID игрока
playerId: 123456,
// Теги сообщений для фильтрации, через И (&)
tags: ['chat', 'trade'],
// сколько запросить за раз, макс. 100
limit: 100,
});
GP_Channels.FetchMoreFeedMessages(
// ID игрока
playerId: 123456,
// Теги сообщений для фильтрации, через И (&)
tags: "chat, trade",
// сколько запросить за раз, макс. 100
limit: 100
);
Чтобы получить результат вызова метода, можно подписаться на события:
- JavaScript
- Unity
gp.channels.on('fetchMoreMessages', (result) => {
result.items - массив списка сообщений
result.canLoadMore - можно ли подгрузить еще сообщения
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchMoreMessages += OnFetchMoreMessages;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchMoreMessages -= OnFetchMoreMessages;
}
private void OnFetchMoreMessages(GP_Data data, bool canLoadMore)
{
var fetchMoreMessageData = data.GetList<Message_Data>();
Debug.Log("FETCH MORE MESSAGES: CAN LOAD MORE: " + canLoadMore);
for (int i = 0; i < fetchMoreMessageData.Count; i++)
{
Debug.Log("FETCH MORE MESSAGES: CHANNEL ID: " + fetchMoreMessageData[i].channelId);
Debug.Log("FETCH MORE MESSAGES: AUTHOR ID: " + fetchMoreMessageData[i].authorId);
Debug.Log("FETCH MORE MESSAGES: ID: " + fetchMoreMessageData[i].id);
Debug.Log("FETCH MORE MESSAGES: TEXT: " + fetchMoreMessageData[i].text);
for (int x = 0; x < fetchMoreMessageData[i].tags.Length; x++)
{
Debug.Log("FETCH MORE MESSAGES: TAGS: " + fetchMoreMessageData[i].tags[x]);
}
Debug.Log("FETCH MORE MESSAGES: CREATED AT: " + fetchMoreMessageData[i].createdAt);
Debug.Log("FETCH MORE MESSAGES: PLAYER: AVATAR: " + fetchMoreMessageData[i].player.avatar);
Debug.Log("FETCH MORE MESSAGES: PLAYER: CREDITIALS: " + fetchMoreMessageData[i].player.credentials);
Debug.Log("FETCH MORE MESSAGES: PLAYER: ID: " + fetchMoreMessageData[i].player.id);
Debug.Log("FETCH MORE MESSAGES: PLAYER: NAME: " + fetchMoreMessageData[i].player.name);
Debug.Log("FETCH MORE MESSAGES: PLAYER: PLATFORM TYPE: " + fetchMoreMessageData[i].player.platformType);
Debug.Log("FETCH MORE MESSAGES: PLAYER: PROJECT ID: " + fetchMoreMessageData[i].player.projectId);
Debug.Log("FETCH MORE MESSAGES: PLAYER: SCORE: " + fetchMoreMessageData[i].player.score);
}
}
Выполнение с ошибкой:
- JavaScript
- Unity
gp.channels.on('error:fetchMoreMessages', (err) => {
// завершен с ошибкой
});
// подписка на событие
private void OnEnable()
{
GP_Channels.OnFetchMoreMessagesError += OnFetchMoreMessagesError;
}
// отписка от события
private void OnDisable()
{
GP_Channels.OnFetchMoreMessagesError -= OnFetchMoreMessagesError;
}
// завершен с ошибкой
private void OnFetchMoreMessagesError() => Debug.Log("FETCH MORE MESSAGES: ERROR");
Возможные ошибки приведены в таблице ниже:
базовые ошибки | сценарные ошибки |
---|---|
player_not_found | empty_channel_id |
project_not_found | channel_not_found |
origin_not_allowed | access_denied |
player_banned | |
internal_error |
Оставайтесь на связи
С другими разделами документации вы можете ознакомиться здесь. Для начала работы вы можете ознакомиться с нашими туториалами.
Сообщество GamePush в Telegram
: @gs_community.
Для ваших обращений e-mail
: [email protected]
Желаем вам успехов!