Obter ponto de extremidade 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 que você receba notificações de alteração quase em tempo real para uma unidade e uma lista usando 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(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
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, esse método retornará um código de 200 OK resposta e um objeto de assinatura 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 retornado é um URL de ponto de extremidade socket.io. Para usá-lo com um cliente socket.io, divida a cadeia de caracteres no /callback? token. A parte da string antes /callback? é a URL do ponto de extremidade socket.io e a parte da string depois é uma string de consulta opaca que deve ser fornecida à biblioteca.

O exemplo a seguir mostra como usar o socket.io com em notificationUrl 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>