如何让外部用户启动并加入应用创建的Microsoft Teams会议?
Teams会议外部用户无法直接加入的问题解决
问题背景
已通过Microsoft开发者计划注册应用,用于为任意租户创建Teams会议链接,流程如下:
- 租户X的用户UserX授权应用,授予
User.Read和OnlineMeetings.ReadWrite权限 - UserX通过应用创建会议链接
- 分享链接给参会者,期望无需提前加入即可进入
但实际情况:外部用户(个人账号或其他租户账号)点击链接后,显示提示:
When the meeting starts, we'll let people know you're waiting
只有租户X内用户登录启动会议后,其他人才能进入。即使请求中传入了lobbyBypassSettings参数也无效。
现有代码(Python + MSAL)
def schedule_interview(): token = get_auth_token() client_instance = retrieveClientInstance() refresh_token = client_instance.acquire_token_by_refresh_token( refresh_token=token.refresh_token, scopes=['User.Read','OnlineMeetings.ReadWrite'] ) headers = {'Authorization': 'Bearer ' + refresh_token['access_token'], 'Content-Type': 'application/json'} meeting_data = { "subject": "My Awesome Meeting", "lobbyBypassSettings":{"scope": "everyone"} } response = requests.post('https://graph.microsoft.com/v1.0/me/onlineMeetings', json=meeting_data,headers=headers) data = response.json() return data['joinWebUrl']
解决方案
仅设置lobbyBypassSettings.scope不足以解决问题,需补充关键配置项,修改后的meeting_data如下:
meeting_data = { "subject": "My Awesome Meeting", "startDateTime": "2024-05-20T14:00:00.000Z", # 必填:设置会议开始时间 "endDateTime": "2024-05-20T15:00:00.000Z", # 必填:设置会议结束时间 "lobbyBypassSettings": { "scope": "everyone", "isEntryExitAnnounced": False }, "allowAnonymousUsersToJoinMeeting": True, # 显式允许匿名用户加入 "allowParticipantsToEnableCamera": True, "allowParticipantsToEnableMic": True }
关键说明
- 必填会议时间:Microsoft Graph创建在线会议时,
startDateTime和endDateTime是强制参数,缺少会导致权限配置不生效,即使是即时会议也需设置合理的时间范围。 - 完整绕过 lobby 配置:除
scope: everyone外,添加isEntryExitAnnounced可避免冗余通知,确保绕过规则正确应用。 - 开启匿名用户权限:显式设置
allowAnonymousUsersToJoinMeeting: True,确保外部用户无需等待租户内用户启动即可直接进入。
同时需确认应用已正确获取OnlineMeetings.ReadWrite权限(用户或管理员已同意),且请求token包含该权限范围。
验证方式
创建会议后,调用GET https://graph.microsoft.com/v1.0/me/onlineMeetings/{meetingId}接口,检查返回的会议对象:
lobbyBypassSettings.scope为everyoneallowAnonymousUsersToJoinMeeting为TruestartDateTime和endDateTime配置正确
若以上字段符合预期,外部用户即可直接加入会议。
内容的提问来源于stack exchange,提问作者Ashish Kumar Sahoo
相关产品推荐
相关产品推荐

