加入会议结果“由于缺少凭据,验证失败。” bigbluebutton?

时间:2020-07-21 13:25:12

标签: c# bigbluebutton

我是bigbluebutton的新手。我已在Ubuntu服务器上成功安装了bbb并启用了API演示。它工作正常。我正在从c#调用API,它也可以正常工作。我正在创建一个如下所示的会议,一切正常。

public CreateMeetingResponse CreateMeeting(CreateMeetingRequest request)
        {
            var qb = new QueryStringBuilder
            {
                {"meetingID", request.MeetingID},
                {"name", request.Name},
                {"attendeePW", request.AttendeePW},
                {"moderatorPW", request.ModeratorPW},
                {"record", request.Record.ToString()},
                {"allowStartStopRecording", request.AllowStartStopRecording.ToString()},
                {"autoStartRecording", request.AutoStartRecording.ToString()},
                {"voiceBridge", request.VoiceBridge.ToString()},
                {"welcome", request.Welcome},
                {"recordingmarks", "true"},
                {"logoutURL", request.LogoutURL}
            };
            qb.Add("checksum", GenerateChecksum("create", qb.ToString()));
            var createRequest = new RestRequest($"/api/create?{qb}", Method.GET);
            var response = Client.Execute<CreateMeetingResponse>(createRequest).Data;
            return response;
        }

创建会议后,我正尝试加入会议,如下所示。

 public JoinMeetingResponse JoinMeeting(JoinMeetingRequest request)
        {
            var qb = new QueryStringBuilder
            {
                {"meetingID", request.MeetingID},
                {"fullName", request.FullName},
                {"userId", request.UserID},
                {"password", request.Password},
                {"joinViaHtml5","true" },
                {"redirect","false" },
                {"guest","true" }
            };
            qb.Add("checksum", GenerateChecksum("join", qb.ToString()));
            var joinRequest = new RestRequest($"/api/join?{qb}", Method.GET);
            var joinResponse = Client.Execute<JoinMeetingResponse>(joinRequest);
            return new JoinMeetingResponse();
        }

bbb服务器API的响应为“成功”,消息为“您已成功加入”。但是,当我尝试打开会议或使用URL加入时,它显示UNAUTHORIZED401。“由于缺少凭据,身份验证失败。”

我打开浏览器控制台,它显示:

[18:07:28:0290] DEBUG: clientLogger: Initial connection status change. status: connecting, connected: false https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:1031295
7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:9 [18:07:28:0970] DEBUG: clientLogger: Initial connection status change. status: connected, connected: true https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:1031295
7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:9 [18:07:28:0971]  INFO: clientLogger: Connection to Meteor took 0.68s https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:1031466
7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:9 [18:07:29:0142] ERROR: clientLogger: User faced an error on main.joinRouteHandler. g.fetchToken (https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:1033747)
7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:9 [18:07:29:0144] ERROR: clientLogger: Encountered error while trying to authenticate t (https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:999188)
7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:9 [18:07:29:0146] ERROR: clientLogger: User could not log in HTML5, hit 401 z.renderByState (https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:1206397)
7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:9 [18:07:29:0327] ERROR: clientLogger: User could not log in HTML5, hit 401 z.renderByState (https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:1206397)

我做错了什么?

1 个答案:

答案 0 :(得分:2)

因此,在投入足够的时间后,我得到了解决方案。 bigBlueButton没有问题。问题是来自服务器端的“加入” API请求。

“加入请求应从客户端/浏览器发出”

所以我要做的是代替传递XML响应,而只需要传递整个蓝色的大按钮,即用Checksum连接URL并重定向= true 因此,只要有人想加入,他们就会直接重定向到会议。