更新MS Teams在线会议后User Principal显示为参与者的问题
问题描述
更新OnlineMeeting后,服务主体(User Principal)会作为参与者出现在会议的参与者列表中。
更新在线会议的逻辑
- 创建包含OnlineMeeting的日历事件(此时未添加任何参会用户)
var eventObject = new Event() { Start = DateTimeTimeZone.FromDateTimeOffset(startTime), End = DateTimeTimeZone.FromDateTimeOffset(endTime), Subject = request.Subject, IsOnlineMeeting = true, OnlineMeetingProvider = OnlineMeetingProviderType.TeamsForBusiness }; var e = await _graphClient.Users[UserPrincipalName] .Calendar.Events.Request().AddAsync(eventObject);
- 获取用户主体ID
var userPrincipalFilter = $"userPrincipalName eq '{userPrincipalName}'"; var userPrincipalById = _graphClient.Users[userPrincipalName].Request() .GetAsync().ConfigureAwait(false).GetAwaiter().GetResult().Id;
- 通过JoinWebUrl获取对应事件的OnlineMeeting实例
var meeting= _graphClient.Users[userPrincipalId].OnlineMeetings.Request().Filter(meetingFilter).GetAsync().ConfigureAwait(false).GetAwaiter().GetResult().FirstOrDefault();
- 更新已创建的在线会议
OnlineMeeting meetingUpdate = new OnlineMeeting() { LobbyBypassSettings = new LobbyBypassSettings() { Scope = LobbyBypassScope.Everyone, IsDialInBypassEnabled = true }, IsEntryExitAnnounced = true, AllowMeetingChat = MeetingChatMode.Limited, RecordAutomatically = false, }; var updatedMeeting = _graphClient.Users[userPrincipalId].OnlineMeetings[meeting.Id].Request().UpdateAsync(meetingUpdate) .ConfigureAwait(false).GetAwaiter().GetResult();
- 为了通过JoinWebUrl获取在线会议,需配置策略“允许应用代表服务主体邮箱访问在线会议”,可参考微软官方文档中的对应配置步骤。
内容的提问来源于stack exchange,提问作者manojmore
相关产品推荐
相关产品推荐

