使用Microsoft graph API sdk订阅用户状态

问题描述

我一直在尝试使用Microsoft graph beta sdk来向用户订阅Microsoft graph api。 我能够成功地订阅一个用户,并且也可以正常工作,就像我从Microsoft团队更改状态时按预期进行更改一样。

当我尝试订阅一个用户时,它说订阅已经存在。尝试删除一个添加一个

有没有办法一次订阅所有用户,或者我需要循环其他方式?

代码

var subscription = new Subscription
                {
                    ChangeType = "updated",NotificationUrl = _applicationBaseUrl + "/Platform/presenceNotification",Resource = $"/communications/presences/{id}",ExpirationDateTime = DateTime.UtcNow.AddMinutes(2),ClientState = tenantId
                };
await graphClient.Subscriptions
                    .Request()
                    .AddAsync(subscription);

解决方法

是的,您可以要求多个ID,并且必须在请求中写入每个ID,MS会将您限制为最多650个用户的列表。

资源格式为:

"/communications/presences?$filter=id in ('id1','id2',...)";