无法通过 Graph Api 为某些用户创建 Microsoft Teams 在线会议(默认为 OnlineMeetingProvider.Unknown)

问题描述 投票:0回答:2

我有 5 个用户,他们在 Office 365 中看起来都一样(无论如何我都可以看到)并且拥有 Teams Exploratory 许可证。我可以为其中 2 个创建在线会议(OnlineMeetingProvider="teamsForBusiness" 和 IsOnlineMeeting=true)。对于其他 3 个用户,它不会出错,但不会创建在线会议(创建事件?),响应 OnlineMeetingProvider 为“未知”,并且 OnlineMeeting 为空。这是相同的代码,因此必须在某个地方进行设置(我所做的就是更改用户的 id)。

用于创建请求的代码:

// Create client
var graphServiceClient = CreateGraphClient();

// Build event
var newEvent = new Event()
{
     Subject = subject,
     Body = new ItemBody() { ContentType = BodyType.Text, Content = body },
     Start = startDate,
     End = endDate,
     IsOnlineMeeting = true,
     Attendees = attendees == null ? null : GetAttendees(attendees),
     OnlineMeetingProvider = OnlineMeetingProviderType.TeamsForBusiness
};

错误响应:

有人知道发生了什么事吗?

microsoft-teams microsoft-graph-teams
2个回答
3
投票

遇到同样的问题,我必须将这些权限添加到我用来创建会议事件的应用程序中:

TeamSettings.Read.All、TeamSettings.ReadWrite.All

添加它们后,isOnlineMeeting 已正确设置为 true,并且 onlineMeetingProvider 已设置为 groupsForBusiness,如请求中指定的那样。

onlineMeetingUrl 始终为 null,但可以从“onlineMeeting.joinUrl”属性获取会议 url,该属性由 API 自动填充。

更新: 正如@lokusking 指出的,即使这是正确的,但看起来并不能完全解决问题。根据我的测试,为新用户创建团队事件并在响应中正确填充 isOnlineMeeting=true 和 onlineMeeting 仅在创建用户帐户后几个小时内有效。请注意,即使是新用户,也会创建事件,只是这些属性不会包含正确的值。


-1
投票

您可以更改现有事件,使其可作为在线会议使用,方法是将 isOnlineMeeting 设置为 true,并将 onlineMeetingProvider 设置为父日历支持的在线会议提供程序之一。响应包括更新的事件以及 onlineMeeting 属性中指定的相应在线会议信息。

https://learn.microsoft.com/en-us/graph/outlook-calendar-online-meetings?tabs=http#example-update-a-meeting-to-make-it-available-as-an-线上会议

© www.soinside.com 2019 - 2024. All rights reserved.