Используя SendBird JavaScript SDK, я могу правильно создать личную группу для обмена сообщениями 1: 1:
var params = new sb.GroupChannelParams();
params.isPublic = false;
params.isEphemeral = false;
params.isDistinct = true;
params.addUserIds([1, 2]);
params.operatorIds = [1];
params.name = name;
sb.GroupChannel.createChannel(params, function(groupChannel, error) {
if (error) {
console.log(error);
return false;
}
sb.GroupChannel.getChannel(groupChannel.url, function(groupChannel) {
var userIds = [2];
groupChannel.inviteWithUserIds(userIds, function(response, error) {
if (error) {
console.log(error);
return false;
}
console.log(response);
});
});
});
Все это работает правильно, и оба пользователя могут видеть приватный чат при получении списка групп. Однако при попытке любого из пользователей присоединиться к частной группе возникает ошибка:
SendBirdException: не авторизовано. «Невозможно присоединиться к непубличному каналу.».
Чтобы присоединиться к группе, я использую следующий код:
sb.GroupChannel.getChannel(id, function(openChannel, error) {
if (error) {
console.log(error);
return false;
}
console.log('Channel Found: ' + openChannel.name + '. Current Participants: ' + openChannel.participantCount);
openChannel.join(function(response, error) {
if (error) {
console.log(error);
return false;
}
console.log('Channel Joined: ' + openChannel.name + '. Current Participants: ' + openChannel.participantCount);
// retrieving previous messages.
});
});
Ответ из приведенного выше кода это:
{
"message": "Not authorized. \"Can't join to non-public channel.\".",
"code": 400108,
"error": true
}
Любая помощь очень ценится. Обратите внимание, я проверил документацию, и в ней не упоминается, как присоединиться к частной группе (только публичная c одна). Я не понимаю, как «создатель» чата может войти в комнату, несмотря на то, что он назначен «оператором».