API-fejlreference
Hver mislykket BigBlueButton API-request returnerer et standardiseret XML-fejlsvar. Dette kapitel giver en komplet reference over alle fejlkoder og meddelelser, som API'et kan returnere, baseret på kildekodeanalyse af BigBlueButton 3.0.
Format for fejlsvar
Når et API-kald fejler, returnerer BigBlueButton et XML-svar med tre nøgleelementer: en returncode, en maskinlæsbar messageKey og en menneskelæsbar message. Hvert fejlsvar følger denne struktur:
<response>
<returncode>FAILED</returncode>
<messageKey>errorKeyHere</messageKey>
<message>A human-readable description of the error.</message>
</response> returncode er altid FAILED ved fejl. Den eneste undtagelse er duplicateWarning, som returnerer SUCCESS, men inkluderer en advarselsnøgle. Din integration bør altid kontrollere feltet messageKey, ikke kun returkoden.
Godkendelses- og autorisationsfejl
Disse fejl opstår, når en anmodning ikke kan godkendes, eller når kalderen mangler de nødvendige tilladelser:
messageKey | Meddelelse | Udløsende endpoints |
|---|---|---|
checksumError | checksum matcher ikke. | Alle slutpunkter |
invalidPassword | Den angivne adgangskode er ugyldig. | join, end |
guestDeniedAccess | Adgang nægtet baseret på guest policy. | join |
missingToken | session token mangler. | getJoinUrl, learningDashboard |
missingSession | session token er ugyldig. | getJoinUrl, learningDashboard |
apiNotEnabled | API-tjenesten er ikke aktiveret på denne server. | Alle slutpunkter |
Fejl i mødeadministration
Disse fejl vedrører oprettelse, deltagelse og administration af møder:
messageKey | Meddelelse | Udløsende endpoints |
|---|---|---|
invalidMeetingId | Det angivne meeting ID findes ikke. | getMeetingInfo, isMeetingRunning, end, join |
invalidMeetingIdentifier | Et møde med dette ID findes ikke. | join |
meetingForciblyEnded | Kan ikke deltage i et møde, der er blevet tvangsafsluttet. | join |
idNotUnique | Et møde med dette ID findes allerede. | create |
nonUniqueVoiceBridge | Den valgte voice bridge er allerede i brug. | create |
duplicateWarning | Denne konference findes allerede og kan være i gang. returncode er SUCCESS | create |
mismatchCreateTimeParam | Parameteren createTime matcher ikke det aktuelle møde. | join |
maxParticipantsReached | Det maksimale antal deltagere er nået. | join |
parentMeetingIDMissing | Ingen parentMeetingID angivet for breakout-rummet. | create (breakout) |
parentMeetingDoesNotExist | Intet overordnet møde fundet for breakout-rummet. | create (breakout) |
meetingNotFound | Mødet blev ikke fundet. | sendChatMessage, getJoinUrl, learningDashboard |
Fejl ved parametervalidering
Disse fejl returneres, når påkrævede parametre mangler, eller når anmodningsdata ikke består valideringen:
messageKey | Meddelelse | Udløsende endpoints |
|---|---|---|
MissingParam | Påkrævet parameter {param} mangler (dynamisk). | create, join, end, getMeetingInfo, og andre |
missingParamMeetingID | meeting ID skal angives. | create, join, isMeetingRunning, end, getMeetingInfo, insertDocument, sendChatMessage |
missingParamFullName | fullName skal angives. | join |
missingParamRecordID | recording ID skal angives. | updateRecordings, publishRecordings, deleteRecordings, getRecordingTextTracks |
missingParamPublish | Værdien publish (true/false) skal angives. | publishRecordings |
validationError | Generel valideringsfejl (forskellige meddelelser). | Flere slutpunkter |
unsupportedContentType | Content-Type for POST-requesten mangler eller understøttes ikke. | create, join, end, getMeetingInfo, insertDocument, sendChatMessage |
emptyError | Feltet må ikke være tomt. | Generel validering |
fileNameError | Filnavnet kunne ikke afkodes. | insertDocument |
Optagelsesfejl
Disse fejl er specifikke for administration af optagelser og tekstsporoperationer:
messageKey | Meddelelse | Udløsende endpoints |
|---|---|---|
notFound | Ingen optagelser fundet. | updateRecordings, publishRecordings, deleteRecordings |
noRecordings | Ingen optagelse fundet for det angivne recording ID. | putRecordingTextTrack |
empty_uploaded_text_track | Den uploadede text track-fil er tom. | putRecordingTextTrack |
paramError | Parameteren {paramName} mangler (dynamisk). | putRecordingTextTrack |
invalidKind | Ugyldig kind-parameter — forventet: subtitles eller captions. | putRecordingTextTrack |
invalidLang | Ugyldig sprogparameter. | putRecordingTextTrack |
Session- og brugerfejl
Disse fejl opstår under validering af session og bruger:
messageKey | Meddelelse | Udløsende endpoints |
|---|---|---|
userNotFound | Ingen aktiv session fundet for det angivne user ID. | join (med existingUserID) |
configNotFound | Ingen konfiguration fundet for dette token. | Intern validering |
noConfigFound | Ingen konfiguration fundet for denne anmodning. | Intern validering |
Fejlfinding
Når du støder på en API-fejl, skal du følge disse trin for at diagnosticere og løse problemet:
Tjek messageKey — brug fejlkodetabellerne ovenfor til at identificere den præcise årsag til fejlen, og hvilket endpoint der udløste den.
checsumError. Dobbelttjek, at du bruger den korrekte shared secret, den rigtige hash-algoritme, og at query-strengen matcher præcist.
Undersøg krævede parametre — fejl om manglende parametre (MissingParam, missingParamMeetingID osv.) angiver, at et påkrævet felt ikke blev inkluderet i anmodningen.
Bekræft mødets status — fejl som invalidMeetingId eller meetingForciblyEnded betyder, at mødet ikke findes eller allerede er afsluttet. Brug getMeetingInfo til at verificere den aktuelle status, før du prøver igen.
Gennemgå serverloggene — hvis fejlmeddelelsen ikke er specifik nok, så tjek BigBlueButton-serverloggene i /var/log/bigbluebutton/ for mere detaljeret information.
Nogle fejlmeddelelser er dynamiske og indeholder navnet eller værdien af den problematiske parameter. Log altid det fulde XML-svar fra API'et for at gøre fejlfinding lettere.
Når du håndterer message key'en duplicateWarning, skal du bemærke, at returncode er SUCCESS, ikke FAILED. Dette er et særligt tilfælde, hvor BigBlueButton signalerer, at et møde med samme ID allerede findes, men returnerer de eksisterende mødedata i stedet for at udløse en fejl.
Ofte stillede spørgsmål
BigBlueButton 3.0. Den officielle BBB-dokumentation indeholder ikke en komplet fejlreference. Definitionerne er spredt over flere kildefiler, herunder ApiErrors.java, ApiController.groovy og RecordingController.groovy.messageKey har tendens til at forblive stabile på tværs af versioner, kan den menneskelæselige meddelelsestekst ændre sig. Brug altid messageKey til programmatisk fejlhåndtering, ikke meddelelsesstrengen.invalidMeetingId bruges af getMeetingInfo, isMeetingRunning, end og join. meetingNotFound bruges af sendChatMessage, getJoinUrl og learningDashboard.duplicateWarning er et særligt tilfælde: returncode er SUCCESS, men messageKey signalerer, at et møde med samme ID allerede findes. Din applikation bør kontrollere, om de eksisterende mødeparametre matcher det, du havde til hensigt. Hvis de gør, kan du trygt fortsætte. Hvis ikke, skal du vælge et andet meeting ID.shared secret, anvendelse af forkert hash-algoritme, inkonsekvent URL-encoding af query-strengen eller inkludering af selve parameteren checksum i hash-inputtet. Sørg for, at den streng, du hasher, bygges som: apiMethodName + queryString + sharedSecret, hvor queryString ikke inkluderer parameteren checksum.POST-request mangler headeren Content-Type eller bruger en content type, som BigBlueButton ikke understøtter. Sørg for, at dine POST-requests inkluderer headeren Content-Type: application/x-www-form-urlencoded.messageKey, så tjek serverloggene og eventuelle installerede plugins for mere information.