你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
扩展计划
在本文中,你将了解使用 Microsoft Teams 和 Microsoft Graph 安排虚拟约会的可用选项。 首先,你将了解如何在 Microsoft Teams 虚拟约会中复制现有体验。 其次,你将了解如何引入自己的计划系统,同时为使用者提供相同的虚拟约会体验。
先决条件
本文读者应熟悉以下内容:
- Microsoft Teams 虚拟约会产品及其提供的用户体验
- Microsoft Graph Booking API,可通过 Microsoft Graph API 管理 Microsoft Booking
- Microsoft Graph 在线会议 API,可通过 Microsoft Graph API 管理 Microsoft Teams 会议
Microsoft 365 计划系统
Microsoft Teams 虚拟约会使用 Microsoft Booking API 来管理它们。 在 Teams 应用程序中,你会看到 Booking 员工的 Booking 约会,以及向客户提供的 Booking 页面,以支持客户选择合适的咨询时间。 按照后续步骤生成自己的用于计划的用户界面,或将 Microsoft 365 计划系统集成到解决方案中。
- 使用以下 HTTP 请求列出可用的 Booking 业务,并通过 Microsoft Graph Booking 业务 API 选择虚拟约会的业务。
GET https://graph.microsoft.com/v1.0/solutions/bookingBusinesses
Permissions: Bookings.Read.All (delegated)
Response: response.body.value[0].displayName; // ”Contoso lunch delivery”
response.body.value[0].id; // "Contosolunchdelivery@contoso.onmicrosoft.com"
- 列出可用的 Booking 服务,并通过 Microsoft Graph Booking 业务 API 选择虚拟约会服务。
GET https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/ Contosolunchdelivery@contoso.onmicrosoft.com/services
Permissions: Bookings.Read.All (delegated)
Response: response.body.value[0].displayName; // ” Initial service”
response.body.value[0].id; // " f9b9121f-aed7-4c8c-bb3a-a1796a0b0b2d"
- [可选] 列出可用的 Booking 员工,并通过 Microsoft Graph Booking 员工 API 选择虚拟约会的员工。 如果未选择任何员工,则创建的约会将标记为“未分配”。
GET https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/ Contosolunchdelivery@contoso.onmicrosoft.com/staffMembers
Permissions: Bookings.Read.All (delegated)
Response: response.body.value[0].displayName; // ”Dana Swope”
response.body.value[0].id; // "8ee1c803-a1fa-406d-8259-7ab53233f148"
- [可选] 通过 Microsoft Graph Booking 员工 API 为虚拟约会选择或创建 Booking 客户。 如果没有客户,则不会发送提醒。
GET https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/ Contosolunchdelivery@contoso.onmicrosoft.com/customers
Permissions: Bookings.Read.All (delegated)
Response: response.body.value[0].displayName; // ”Adele Vance”
response.body.value[0].id; // "80b5ddda-1e3b-4c9d-abe2-d606cc075e2e"
- 通过 Microsoft Graph Booking 约会 API 为所选业务、服务或(可选)员工及来宾创建约会。 在以下示例中,我们将创建一个与预订关联的联机会议。 此外,可以提供说明和提醒。
POST https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/ Contosolunchdelivery@contoso.onmicrosoft.com/appointments
Body: {
"endDateTime": {
"@odata.type": "#microsoft.graph.dateTimeTimeZone",
"dateTime": "2023-05-20T10:00:00.0000000+00:00",
"timeZone": "UTC"
},
"isLocationOnline": true,
"staffMemberIds": [
{
"8ee1c803-a1fa-406d-8259-7ab53233f148"
}
],
"serviceId": "f9b9121f-aed7-4c8c-bb3a-a1796a0b0b2d",
"startDateTime": {
"dateTime": "2023-05-20T09:00:00.0000000+00:00",
"timeZone": "UTC"
},
"customers": [
{
"customerId": "80b5ddda-1e3b-4c9d-abe2-d606cc075e2e"
}
]
}
Permissions: BookingsAppointment.ReadWrite.All (delegated)
Response: response.body.value.id; // "AAMkADc7zF4J0AAA8v_KnAAA="
response.body.value.serviceId; // "f9b9121f-aed7-4c8c-bb3a-a1796a0b0b2d"
response.body.value.joinWebUrl; // "https://teams.microsoft.com/l/meetup-join/..."
response.body.value.anonymousJoinWebUrl; // "https://visit.teams.microsoft.com/webrtc-svc/..."
response.body.value.staffMemberIds; // "8ee1c803-a1fa-406d-8259-7ab53233f148"
response.body.value.customers[0].name; // "Adele Vance"
在响应中,你会看到创建了一个新的 Booking 约会。 虚拟约会还会显示在 Microsoft Booking 应用和 Microsoft Teams 虚拟约会应用程序中。
备注
获取客户信息的唯一方法是使用 GET Microsoft Graph Booking 约会 API。
自带计划系统
如果已有一个现有的计划系统,并希望使用 Microsoft Teams 提供的虚拟约会体验来扩展它,请执行以下步骤:
- 通过 Microsoft Graph 在线会议 API 创建虚拟约会在线会议。
备注
此操作不会在 Microsoft Booking、Outlook 或 Microsoft Teams 中创建日历事件。 如果要创建日历事件,可使用 Microsoft Graph 日历事件 API。
POST https://graph.microsoft.com/v1.0/ me/onlineMeetings
Body: {
"startDateTime":"2023-05-20T09:00:00.0000000+00:00",
"endDateTime":"2023-05-20T10:00:00.0000000+00:00",
"subject":"Virtual appointment in Microsoft Teams"
}
Permissions: OnlineMeetings.ReadWrite (delegated)
Response: response.body.value.id; // "MSpkYzE3NjctYmZiMi04ZdFpHRTNaR1F6WGhyZWFkLnYy"
response.body.value.joinWebUrl; // "https://teams.microsoft.com/l/meetup-join/..."
GET https://graph.microsoft.com/v1.0/ me/onlineMeetings/ MSpkYzE3NjctYmZiMi04ZdFpHRTNaR1F6WGhyZWFkLnYy/getVirtualAppointmentJoinWebUrl
Permissions: OnlineMeetings.ReadWrite (delegated)
Response: response.body.value; //"https://visit.teams.microsoft.com/webrtc-svc/..."
可以将生成的 URL 存储在计划系统中,也可以创建专用的键值对存储,以将计划系统中日历事件的唯一 ID 与指向 Microsoft Teams 虚拟约会体验的 URL 相关联。