Estendere la pianificazione

In questo articolo vengono illustrate le opzioni disponibili per pianificare un appuntamento virtuale con Microsoft Teams e Microsoft Graph. In primo luogo, si apprenderà come replicare l'esperienza esistente negli appuntamenti virtuali di Microsoft Teams. In secondo luogo, si apprenderà come portare il proprio sistema di pianificazione fornendo la stessa esperienza di appuntamento virtuale ai consumer.

Prerequisiti

Si prevede che il lettore di questo articolo abbia familiarità con:

Sistema di pianificazione di Microsoft 365

Gli appuntamenti virtuali di Microsoft Teams usano le API di Prenotazione Microsoft per gestirle. Nell'applicazione Teams vengono visualizzati gli appuntamenti di prenotazione per i membri del personale di prenotazione e fornisce la pagina Prenotazione per i clienti per consentire ai clienti di selezionare orari appropriati per la consultazione. Seguire i passaggi successivi per creare un'interfaccia utente personalizzata per la pianificazione o l'integrazione del sistema di pianificazione di Microsoft 365 nella soluzione.

  1. Usare la seguente richiesta HTTP per elencare le aziende di prenotazione disponibili e selezionare business per appuntamenti virtuali tramite l'API delle aziende di prenotazione di Microsoft Graph.
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. Elencare i servizi di prenotazione disponibili e selezionare il servizio per gli appuntamenti virtuali tramite l'API servizi di prenotazione microsoft Graph.
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. [Facoltativo] Elencare i membri del personale di prenotazione disponibili e selezionare i membri del personale per l'appuntamento virtuale tramite l'API membro del personale di Microsoft Graph Booking. Se non viene selezionato alcun membro del personale, l'appuntamento creato viene etichettato come "Non assegnato".
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. [Facoltativo] Selezionare o creare un cliente di prenotazione per l'appuntamento virtuale tramite l'API cliente di Prenotazione di Microsoft Graph. Nessun promemoria viene inviato se non sono presenti clienti.
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. Creare appuntamenti di prenotazione per le aziende, il servizio e facoltativamente i membri del personale e gli ospiti tramite l'API appuntamento di Prenotazione di Microsoft Graph. Nell'esempio seguente viene creata una riunione online associata alla prenotazione. Inoltre, è possibile fornire note e promemoria.
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"

Nella risposta viene visualizzato un nuovo appuntamento di prenotazione creato. L'appuntamento virtuale mostra anche nell'app Microsoft Booking e nell'applicazione appuntamento virtuale Microsoft Teams.

Nota

L'unico modo per ottenere informazioni sui clienti consiste nell'usare l'API appuntamento get Microsoft Graph Booking.

Portare il proprio sistema di pianificazione

Se si dispone di un sistema di pianificazione esistente e si vuole estenderlo con l'esperienza di appuntamento virtuale fornita da Microsoft Teams, seguire la procedura seguente:

  1. Creare una riunione online per l'appuntamento virtuale tramite l'API riunione di Microsoft Graph Online.

Nota

Questa operazione non crea un evento di calendario in Microsoft Booking, Outlook o Microsoft Teams. Se si vuole creare un evento di calendario, usare l'API evento di Microsoft Graph Calendar.

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. Creare un'esperienza di appuntamento virtuale per una risorsa onlinemeeting creata nel passaggio precedente tramite
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/..."

È possibile archiviare l'URL generato all'interno del sistema di pianificazione o creare un'archiviazione di coppia chiave-valore dedicata che collega l'ID univoco dell'evento di calendario nel sistema di pianificazione con l'URL dell'esperienza di appuntamento virtuale di Microsoft Teams.

Passaggi successivi