Gå til indholdet

Kodeeksempler

Eksemplerne dækker de centrale integrationsscenarier med curl og JSON.

# Scenarie Endpoint / handling
1 Test API-forbindelse GET /v2/info
2 Opret møde POST /v2/meetings
3 Hent møde GET /v2/meetings/{uuid}
4 Søg møder i periode GET /v2/meetings
5 Opdater møde (PATCH) PATCH /v2/meetings/{uuid}
6 Hent scheduling info GET /v2/scheduling-info/{uuid}
7 Fejlhåndtering 401 / 403 / 406

Forudsætninger i eksemplerne

Erstat placeholder-værdier:

Variabel Beskrivelse
ACCESS_TOKEN JWT access token fra Keycloak efter login
VIDEO_API_BASE https://videoapi.vconf-stage.dk (stage)
MEETING_UUID UUID fra oprettet møde

1. Test API-forbindelse (GET /v2/info)

VIDEO_API_BASE="https://videoapi.vconf-stage.dk"
ACCESS_TOKEN="DIT_ACCESS_TOKEN"

curl -s -X GET "${VIDEO_API_BASE}/v2/info" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}"

Forventet: HTTP 200 med info-array.

2. Opret møde (POST /v2/meetings)

curl -s -X POST "${VIDEO_API_BASE}/v2/meetings" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Patientkonsultation",
    "startTime": "2026-06-28T10:00:00Z",
    "endTime": "2026-06-28T10:30:00Z",
    "description": "Opfølgning efter tidligere besøg",
    "externalId": "booking-12345",
    "guestPinRequired": false
  }'

Gem uuid og shortLink fra responsen.

Med scheduling template og arrangedBy

curl -s -X POST "${VIDEO_API_BASE}/v2/meetings" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Teamsmøde",
    "startTime": "2026-06-28T14:00:00+02:00",
    "endTime": "2026-06-28T15:00:00+02:00",
    "schedulingTemplateId": 5,
    "organizedByEmail": "planlaegger@eksempel.dk"
  }'

3. Hent møde (GET /v2/meetings/{uuid})

MEETING_UUID="46b46a1e-a4d3-4387-87ee-a67dcaa222cb"

curl -s -X GET "${VIDEO_API_BASE}/v2/meetings/${MEETING_UUID}" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}"

4. Søg møder i periode (GET /v2/meetings)

curl -s -G "${VIDEO_API_BASE}/v2/meetings" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}" \
  --data-urlencode "from-start-time=2026-06-01T00:00:00Z" \
  --data-urlencode "to-start-time=2026-06-30T23:59:59Z"

Søg via short ID

curl -s -G "${VIDEO_API_BASE}/v2/meetings" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}" \
  --data-urlencode "short-id=abcdefghijkl"

5. Opdater møde (PATCH /v2/meetings/{uuid})

Forlæng møde (kun endTime tilladt når provisionStatus er PROVISIONED_OK):

curl -s -X PATCH "${VIDEO_API_BASE}/v2/meetings/${MEETING_UUID}" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "endTime": "2026-06-28T11:00:00Z"
  }'

6. Hent scheduling info (GET /v2/scheduling-info/{uuid})

curl -s -X GET "${VIDEO_API_BASE}/v2/scheduling-info/${MEETING_UUID}" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}"

Typisk respons indeholder uriWithDomain, hostPin, guestPin, portalLink og provisionStatus.

7. Fejlhåndtering

401 — ugyldig eller manglende token

{
  "errorCode": 401,
  "errorText": "Unauthorized"
}

Handling: Forny token via Keycloak; hvis det fejler, log brugeren ud.

403 — organisationsadgang nægtet

{
  "errorCode": 403,
  "errorText": "Permission denied"
}

Handling: Mødet tilhører ikke brugerens organisation — vis fejl, foretag ikke retry.

406 — ugyldig operation for provisionStatus

{
  "errorCode": 406,
  "errorText": "Meeting cannot be deleted in current provision status"
}

Handling: Tjek provisionStatus via scheduling info før sletning/opdatering.

Se Fejlkoder for komplet oversigt.

Se også

Ændringshistorik

Dato Ændring
2026-06-27 Første kodeeksempler for MedCom Video API v2