We created a tenant wide subscription to be notified of newly created recordings and got that to work. We have to manually parse out the MeetingId and RecordingI from the returned URL fragment. We then use that information to get the meeting information:
var meeting = await _graphServiceClient
.Users[_staticUserId]
.OnlineMeetings[meetingId]
.GetAsync(r => r.Options.WithAppOnly());
And the recording information:
var recordingInfo = await _graphServiceClient
.Users[_staticUserId]
.OnlineMeetings[meetingId]
.Recordings[recordingId]
.GetAsync(r => r.Options.WithAppOnly());
And finally, we get the Stream to download the content and begin downloading it:
var recordingStream = await _graphServiceClient
.Users[_staticUserId]
.OnlineMeetings[info.MeetingInfo.Id]
.Recordings[info.RecordingInfo.Id]
.Content
.GetAsync(r => r.Options.WithAppOnly());
Notice that all of these calls require a User. However, the notification contains no indication of the meeting organizer or invited attendees.
{
"subscriptionId": "6aa5ced2-xxxx-xxxx-xxxx-3109c731d986",
"changeType": "created",
"tenantId": "<<--TenantForWhichNotificationWasSent-->>",
"clientState": "<<--SpecifiedClientState-->>",
"subscriptionExpirationDateTime": "2023-09-17T08:27:05.0241757+00:00",
"resource": "communications/onlineMeetings('M ... LnYy')/recordings('VjI ... zI=')",
"resourceData": {
"id": "VjIjIzE5NzZ ... 2NDJlNzI=",
"@odata.type": "#Microsoft.Graph.callRecording",
"@odata.id": "communications/onlineMeetings('M ... LnYy')/recordings('VjI ... zI=')"
}
}
Our need is to automatically process all recordings across the tenant. The notification system allows for that, but once we receive the notification, we need to specify a user Id to do anything with the notification. This seems counter intuitive. We would like our App Registration to have access to all meeting and recording information and content. We'd also prefer to not have to parse the meeting and recording Ids from the resource: node of the notification. Are we approaching this the wrong way somehow? Thanks in advance.
Mike