Присоединение к частной группе 1-к-1 в SendBird - PullRequest
0 голосов
/ 19 марта 2020

Используя 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 одна). Я не понимаю, как «создатель» чата может войти в комнату, несмотря на то, что он назначен «оператором».

1 Ответ

0 голосов
/ 20 марта 2020

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

if (groupChannel.isPublic) {
groupChannel.join(function(response, error) {
    if (error) {
        return;
    }
});

}

Вместо

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.
});

https://docs.sendbird.com/javascript/group_channel#3_join_a_channel_as_a_member

...