Compartilhar via


Obter ponto final websocket

Namespace: microsoft.graph

Importante

As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.

Não há suporte para o uso dessas APIs em aplicativos de produção.

Permite-lhe receber notificações de alteração quase em tempo real para uma unidade e lista com socket.io. Socket.io é uma biblioteca de notificações popular para JavaScript que utiliza WebSockets. Para saber mais, consulte socket.io.

Permissões

Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.

Tipo de permissão Permissões com menos privilégios Permissões com privilégios superiores
Delegado (conta corporativa ou de estudante) Files.Read Files.ReadWrite, Files.ReadWrite.All, Sites.ReadWrite.All
Delegado (conta pessoal da Microsoft) Files.Read Files.ReadWrite, Files.ReadWrite.All
Aplicativo Sem suporte. Sem suporte.

Solicitação HTTP

GET /me/drive/root/subscriptions/socketIo
GET /drives/{driveId}/root/subscriptions/socketIo
GET /drives/{driveId}/list/subscriptions/socketIo
GET /groups/{groupId}/drive/root/subscriptions/socketIo
GET /sites/{siteId}/lists/{listId}/drive/root/subscriptions/socketIo

Exemplo

Solicitação

GET /me/drive/root/subscriptions/socketIo

Resposta

Se for bem-sucedido, este método devolve um 200 OK código de resposta e um objeto de subscrição no corpo da resposta.

HTTP/1.1 200 OK
Content-type: application/json

{
  "id": "opaqueId-fj3hd7yf283jfk193726nvc2w3i2diemdu8",
  "notificationUrl": "https://f3hb0mpua.svc.ms/zbaehwg/callback?snthgk=1ff3-2345672zz831837523"
}

O notificationUrl devolvido é um URL de ponto final socket.io. Para utilizá-lo com um cliente socket.io, divida a cadeia no /callback? token. A parte da cadeia anterior /callback? é o URL do ponto final socket.io e a parte da cadeia a seguir é uma cadeia de consulta opaca que tem de ser dada à biblioteca.

O exemplo seguinte mostra como utilizar o notificationUrl com socket.io em JavaScript.

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.8.1/socket.io.js"></script>
<script>
  // This is the notificationUrl returned from this API
  var notificationUrl = "https://f3hb0mpua.svc.ms/zbaehwg/callback?snthgk=1ff3-2345672zz831837523";
  
  // 'io' comes from the socket.io client library
  var socket = io(notificationUrl, {
    transports: ['websocket'] // Make sure to use "websocket" instead of the default value of "polling" which isn't supported
  });
  
  socket.on("connect", () => {
    console.log(`connect`, socket.id);
  });
  
  socket.on("disconnect", () => {
    // Returns "undefined" on disconnect
    console.log(`disconnect`, socket.id);
  });
  
  socket.on("notification", (data) => {
    console.log(`Notification received:`, data);
  });
</script>