你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

扩展计划

在本文中,你将了解使用 Microsoft Teams 和 Microsoft Graph 安排虚拟约会的可用选项。 首先,你将了解如何在 Microsoft Teams 虚拟约会中复制现有体验。 其次,你将了解如何引入自己的计划系统,同时为使用者提供相同的虚拟约会体验。

先决条件

本文读者应熟悉以下内容:

Microsoft 365 计划系统

Microsoft Teams 虚拟约会使用 Microsoft Booking API 来管理它们。 在 Teams 应用程序中,你会看到 Booking 员工的 Booking 约会,以及向客户提供的 Booking 页面,以支持客户选择合适的咨询时间。 按照后续步骤生成自己的用于计划的用户界面,或将 Microsoft 365 计划系统集成到解决方案中。

  1. 使用以下 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"
  1. 列出可用的 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"
  1. [可选] 列出可用的 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"
  1. [可选] 通过 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"
  1. 通过 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 提供的虚拟约会体验来扩展它,请执行以下步骤:

  1. 通过 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/..."
  1. 为通过以下方式在上一步中创建的在线会议资源创建虚拟约会体验
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 相关联。

后续步骤