You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让外部用户启动并加入应用创建的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
}

关键说明

  1. 必填会议时间:Microsoft Graph创建在线会议时,startDateTime和endDateTime是强制参数,缺少会导致权限配置不生效,即使是即时会议也需设置合理的时间范围。
  2. 完整绕过 lobby 配置:除scope: everyone外,添加isEntryExitAnnounced可避免冗余通知,确保绕过规则正确应用。
  3. 开启匿名用户权限:显式设置allowAnonymousUsersToJoinMeeting: True,确保外部用户无需等待租户内用户启动即可直接进入。

同时需确认应用已正确获取OnlineMeetings.ReadWrite权限(用户或管理员已同意),且请求token包含该权限范围。

验证方式

创建会议后,调用GET https://graph.microsoft.com/v1.0/me/onlineMeetings/{meetingId}接口,检查返回的会议对象:

  • lobbyBypassSettings.scope为everyone
  • allowAnonymousUsersToJoinMeeting为True
  • startDateTime和endDateTime配置正确

若以上字段符合预期,外部用户即可直接加入会议。

内容的提问来源于stack exchange,提问作者Ashish Kumar Sahoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:24:39