Compartilhar via


Obter ponto final websocket

Namespace: microsoft.graph

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

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type application/json. Obrigatório.

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.

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>