如何通过代码让MS Graph生成的Teams会议链接直接在浏览器打开?
问题:如何让Teams会议直接在浏览器打开,绕过弹窗和启动页?
我已通过MS Graph API成功创建onlineMeeting对象,调用接口为POST /users/{userId}/onlineMeetings。
提取joinWebUrl(或joinUrl,二者内容一致)并在新标签页打开时,会弹出弹窗询问是否打开系统中的Teams应用参会:
- 选择“是”则启动Teams应用参会;
- 选择“否”则进入Teams启动页,提供三个选项:下载应用、在浏览器中继续、打开Teams。
我需要实现直接在浏览器中打开会议,绕过上述弹窗和启动页,是否可通过代码实现?
以下是我的Graph API代码:
let data = { "startDateTime": "2022-08-16T13:20:34.2444915-07:00", "endDateTime": "2022-08-16T13:25:34.2444915-07:00", "subject": "Teams Meeting" } let payload = await fetch("https://graph.microsoft.com/v1.0/users/{userId}/onlineMeetings", { method: 'POST', headers: { 'Authorization': 'Bearer ' + tokenResponse.accessToken, 'Content-Type': 'application/json' }, body: JSON.stringify(data) }); let json = await payload.json(); window.open(json.joinWebUrl);
解决方案
可以通过修改会议链接的参数实现直接在浏览器打开Teams会议,无需经过弹窗和启动页:
方法:在joinWebUrl后追加强制浏览器参会的参数
Teams支持通过URL参数browser=1强制会议在浏览器中打开,只需在原链接末尾添加该参数即可。
修改代码中打开链接的部分:
// 追加&browser=1参数,强制浏览器打开 window.open(`${json.joinWebUrl}&browser=1`);
如果原joinWebUrl未包含查询参数(链接中无?),也可以用?browser=1。实际场景中joinWebUrl通常已带有查询参数,因此用&browser=1更稳妥。
原理说明
Teams会议链接默认会触发应用跳转逻辑,browser=1参数会告知Teams服务直接加载浏览器版本的会议页面,跳过应用检测和跳转弹窗,直接进入浏览器参会界面。
内容的提问来源于stack exchange,提问作者mag
相关产品推荐
相关产品推荐

