0

使用 SendBird JavaScript SDK,我能够正确地为一对一消息创建一个私有组:

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
}

任何帮助深表感谢。请注意,我已经检查了文档,它没有提到如何加入私人群组(只有公共群组)。尽管被设置为“操作员”,但我看不到聊天室的“创建者”如何能够加入房间。

4

1 回答 1

0

看起来您正在尝试加入开放频道,而它实际上是一个群组频道。您可以通过调用该方法调用以成员身份加入群组频道。

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

于 2020-03-20T02:12:40.613 回答