docs(it-management): add E2E lessons learned for meeting auto-import
- UPN -> OID resolution required (Policy matches by OID) - aiInsights moved under /copilot/ (Beta) - Transcript Accept header workaround - Permission rename: OnlineMeetingArtifact -> OnlineMeetingRecording Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
69c7f86fac
commit
a1d4b7b0ce
|
|
@ -66,7 +66,7 @@ Authentication: OAuth2 Client Credentials Flow (`@azure/msal-node`)
|
|||
Ergänzt am 2026-05-06:
|
||||
- `OnlineMeetings.Read.All` — OnlineMeeting per JoinUrl auflösen
|
||||
- `OnlineMeetingTranscript.Read.All` — `.vtt` lesen
|
||||
- `OnlineMeetingArtifact.Read.All` — Recording-URL lesen
|
||||
- `OnlineMeetingRecording.Read.All` — Recording-URL lesen (frühere Bezeichnung `OnlineMeetingArtifact.Read.All` wurde von Microsoft umbenannt; alter Name funktioniert nicht mehr)
|
||||
- `OnlineMeetingAiInsight.Read.All` — Copilot-Recap (Beta-Endpoint)
|
||||
|
||||
Bereits vorhanden: `Calendars.Read`, `User.Read.All`, plus Mail/Sites.
|
||||
|
|
@ -110,7 +110,7 @@ Meeting endet
|
|||
├─> resolveOnlineMeeting ── OnlineMeetings.Read.All + AccessPolicy
|
||||
├─> fetchTranscriptVtt ── OnlineMeetingTranscript.Read.All
|
||||
├─> fetchAiInsights ── OnlineMeetingAiInsight.Read.All (Beta)
|
||||
└─> fetchRecordingUrl ── OnlineMeetingArtifact.Read.All
|
||||
└─> fetchRecordingUrl ── OnlineMeetingRecording.Read.All
|
||||
── JSON ──>
|
||||
Claude: Doppel-Pass + Speaker-Mapping + Merge + Agenda-Rückführung
|
||||
└─> Meeting-Notiz + Agenda.md aktualisiert
|
||||
|
|
@ -123,6 +123,13 @@ Meeting endet
|
|||
- Recap fehlt (kein Copilot) → User-Prompt zum manuellen Einfügen
|
||||
- Kein O365-ID → User kann manuell weitermachen ohne Auto-Import
|
||||
|
||||
## Lessons Learned (E2E 2026-05-06)
|
||||
|
||||
- **UPN → OID Auflösung Pflicht:** `/users/{upn}/onlineMeetings` liefert 404, auch mit korrekter Application Access Policy. OnlineMeetings-API + Policy matchen ausschließlich gegen die Object-ID. Script löst daher zuerst UPN → OID via `/users/{upn}?$select=id` auf.
|
||||
- **aiInsights ist umgezogen:** Endpoint liegt jetzt unter `/copilot/users/{oid}/onlineMeetings/{mid}/aiInsights` (Beta). Alter Pfad `/users/{oid}/onlineMeetings/{mid}/aiInsights` antwortet mit 404 "API not supported". List-Call liefert nur Metadaten — Details (`meetingNotes`, `actionItems`, `mentions`) brauchen einen Detail-Call pro Insight-ID.
|
||||
- **Transcript Content braucht expliziten Accept-Header:** Default `Accept: */*` wird mit "Invalid format '*/*' specified" abgewiesen. Lösung: `?$format=text/vtt` + `Accept: text/vtt` + `responseType('text')`.
|
||||
- **Permission-Rename `Artifact` → `Recording`:** Microsoft hat `OnlineMeetingArtifact.Read.All` umbenannt zu `OnlineMeetingRecording.Read.All`. Alter Name ist tot, gibt 403 mit Hinweis auf den neuen Namen.
|
||||
|
||||
## Bekannte Einschränkungen
|
||||
|
||||
- Nur Meetings, bei denen `AZURE_USER_EMAIL` der Organizer ist (Graph-Restriktion)
|
||||
|
|
|
|||
Loading…
Reference in New Issue