Compartilhar via


Estender o agendamento

Neste artigo, você aprenderá as opções disponíveis para agendar um compromisso virtual com o Microsoft Teams e o Microsoft Graph. Primeiro, você aprenderá a replicar a experiência existente em compromissos virtuais do Microsoft Teams. Em segundo lugar, você aprenderá a trazer seu próprio sistema de agendamento, fornecendo a mesma experiência de compromisso virtual aos consumidores.

Pré-requisitos

Espera-se que o leitor deste artigo esteja familiarizado com:

Sistema de agendamento do Microsoft 365

Os compromissos virtuais do Microsoft Teams usam APIs do Microsoft Booking para gerenciá-los. No aplicativo Teams, você vê os compromissos do Booking para membros da equipe do Booking e ele fornece a Página de Reserva para os clientes, permitindo que eles selecionem os horários apropriados para consulta. Siga as próximas etapas para criar sua própria interface do usuário para agendar ou integrar o sistema de agendamento do Microsoft 365 à sua solução.

  1. Use a solicitação HTTP a seguir para listar as empresas do Booking disponíveis e selecionar negócios para compromissos virtuais por meio da API de empresas do Microsoft Graph Booking.
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. Liste os serviços do Booking disponíveis e selecione o serviço para Compromissos virtuais por meio da API de serviços do Microsoft Graph Booking.
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. [Opcional] Liste os membros disponíveis da equipe do Booking e selecione membros da equipe para Compromisso virtual por meio da API de membro da equipe do Microsoft Graph Booking. Se nenhum membro da equipe for selecionado, o compromisso criado será rotulado como "Não atribuído".
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. [Opcional] Selecione ou crie o cliente do Booking que para compromisso virtual por meio da API de cliente do Microsoft Graph Booking. Nenhum lembrete será enviado se não houver clientes.
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. Crie compromissos do Booking para empresas, serviços e, opcionalmente, funcionários e convidados por meio da API de compromisso do Microsoft Graph Booking. No exemplo a seguir, criamos uma reunião online associada à reserva. Além disso, você pode fornecer anotações e lembretes.
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"

Na resposta, você verá que um novo compromisso do Booking foi criado. O compromisso virtual também é mostrado no aplicativo Microsoft Booking e no aplicativo de compromisso virtual do Microsoft Teams.

Observação

A única maneira de obter informações do cliente é usar a API de compromisso GET do Microsoft Graph Booking.

Traga seu próprio sistema de agendamento

Se você tiver um sistema de agendamento existente e quiser estendê-lo com a experiência de compromisso virtual fornecida pelo Microsoft Teams, siga as etapas abaixo:

  1. Crie uma reunião online para compromisso virtual por meio da API de reunião do Microsoft Graph Online.

Observação

Essa operação não cria um evento de calendário no Microsoft Booking, Outlook ou Microsoft Teams. Se você quiser criar um evento de calendário, use a API de eventos do Calendário do Microsoft Graph.

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. Criar experiência de compromisso virtual para um recurso de consulta online criado na etapa anterior por meio de
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/..."

Você pode armazenar a URL gerada dentro do sistema de agendamento ou criar um armazenamento de par chave-valor dedicado que vincule a ID exclusiva do evento de calendário em seu sistema de agendamento com a URL para a experiência de compromisso virtual do Microsoft Teams.

Próximas etapas