如何通过Graph API创建关联Teams频道的会议并同步日历、发送邀请
解决方法:通过Graph API创建关联Teams频道的日历会议
要同时实现关联Teams频道、显示在用户日历、发送参会邀请,正确的方式是在创建日历事件(events端点)时,一次性配置完整的在线会议及频道关联参数,无需分开调用onlinemeetings和events端点。
核心配置要点
调用 POST https://graph.microsoft.com/v1.0/users/{organiser}/events 时,除了填写主题、时间、参会者等基础日历字段,必须添加以下关键配置:
- 设置
isOnlineMeeting: true - 指定
onlineMeetingProvider: "teamsForBusiness" - 在
onlineMeeting对象中配置chatInfo,填入目标Teams频道的threadId和channelId - 将
meetingInfo设为channelMeetingInfo类型,关联对应频道ID
示例请求体
{ "subject": "频道关联团队会议", "body": { "contentType": "HTML", "content": "这是一个关联Teams频道的会议测试" }, "start": { "dateTime": "2024-06-15T14:00:00", "timeZone": "UTC" }, "end": { "dateTime": "2024-06-15T15:00:00", "timeZone": "UTC" }, "attendees": [ { "emailAddress": { "address": "attendee1@contoso.com", "name": "参会者1" }, "type": "required" } ], "isOnlineMeeting": true, "onlineMeetingProvider": "teamsForBusiness", "onlineMeeting": { "chatInfo": { "threadId": "19:abc123xyz@thread.tacv2", "channelId": "19:def456uvw@thread.tacv2" }, "meetingInfo": { "@odata.type": "#microsoft.graph.channelMeetingInfo", "channelId": "19:def456uvw@thread.tacv2" } } }
关键说明
threadId和channelId获取:调用GET https://graph.microsoft.com/v1.0/teams/{team-id}/channels可获取目标频道的id,该值同时作为channelId和threadId使用(Teams频道的线程ID与频道ID一致)- 权限要求:应用需拥有
Calendars.ReadWrite和Channel.ReadBasic.All(或更高权限),且请求需以会议组织者身份发起 - 避免分开调用端点:单独调用
onlinemeetings创建的频道会议不会同步到日历,单独创建events仅生成普通Teams会议,必须在同一个events请求中完成所有关联配置
验证结果
发送请求后会自动完成以下操作:
- 会议同步到组织者和参会者的日历
- 向参会者发送包含会议链接的邀请邮件
- 会议关联到指定Teams频道,频道内会显示会议卡片,可直接从频道进入会议
内容的提问来源于stack exchange,提问作者TimBunting
相关产品推荐
相关产品推荐

