Estoy usando MS Graph API para obtener las presencias del usuario, ahora estoy atascado en la obtención de varias suscripciones. Por ejemplo, si tengo 10 usuarios en mi inquilino de equipos, quiero obtener suscripciones para sus presencias, de modo que cuando cambie la presencia de alguien, obtenga una suscripción. El método que estoy usando funciona bien para un solo usuario. Cuando doy una identificación de usuario único en los recursos, la suscripción funciona bien, pero para múltiples usuarios, no puedo usar la cláusula de filtro que se menciona en muchos documentos. Ahora necesito agregar "/communications/presences?$filter=id in ({id},{id}…) (multiple users)" pero estoy confundido porque me da un error de cláusula de filtro no válido si agrego filter('' ) en eso.
Consulte la documentación del filtro https://docs.microsoft.com/en-us/graph/query-parameters?context=graph%2Fapi%2Fbeta&view=graph-rest-beta#filter-parameter . Verá que los valores realmente necesitan tener ' ' a su alrededor.
Entonces, si cambia su solicitud a lo siguiente, debería funcionar:
{ "changeType": "updated", "notificationUrl": "https://c3b9ebcxxxxx.ngrok.io/presence-notify/", "resource": "/communications/presences?$filter=id in ('a3c710b2-33f8-4e7c-85b9-cbd88cdbxxxx','eab3e87b-473d-4d2d-9587-b7156b7exxxx')", "expirationDateTime": "2021-12-30T08:37:12Z", "clientState": "secretClientState" }getMSTeamsSubscriptionForPresence pública (ids) { try { let obj = { "changeType": "Updated", "userid": this.configService.getCustomerID, "expirationDateTime": "2021-12-22T10:45:39.2257768+00:00", "resource": "/communications/presences?$filter=id in (" + ids + ")", "notificationUrl": this.configService.apiUrl + "/teams", } return this.graphClient.api("/Subscriptions ").post(obj); // } } catch (err) { console.log('error al obtener la suscripción', err); } }
donde el formato de ID será 'id1', 'id2', etc.