Obtener punto de conexión de websocket

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

No se admite el uso de estas API en aplicaciones de producción.

Le permite recibir notificaciones de cambios casi en tiempo real para una unidad y una lista mediante socket.io. Socket.io es una biblioteca de notificaciones popular para JavaScript que utiliza WebSockets. Para obtener más información, consulta socket.io.

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use uno o varios permisos con privilegios más altos solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Files.Read Files.ReadWrite, Files.ReadWrite.All, Sites.ReadWrite.All
Delegado (cuenta personal de Microsoft) Files.Read Files.ReadWrite, Files.ReadWrite.All
Aplicación No admitida. No admitida.

Solicitud 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

Ejemplo

Solicitud

GET /me/drive/root/subscriptions/socketIo

Respuesta

Si se realiza correctamente, este método devuelve un código de 200 OK respuesta y un objeto de suscripción en el cuerpo de la respuesta.

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

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

La notificationUrl devuelve es una dirección URL de punto de conexión socket.io. Para usarlo con un cliente socket.io, divida la cadena en el /callback? token. La parte de la cadena anterior /callback? es la dirección URL del punto de conexión de socket.io y la parte de la cadena posterior es una cadena de consulta opaca que debe proporcionarse a la biblioteca.

En el ejemplo siguiente se muestra cómo usarlo notificationUrl con socket.io en 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>