无法使用MS图形更新Web挂钩订阅

时间:2020-06-26 22:23:25

标签: c# .net-core microsoft-graph-api webhooks sharepoint-online

在仅使用应用程序凭据运行的控制台应用程序中, 我得到这样的订阅:

var list = await graphClient.Sites[site.Id].Lists["My list name"].Request().GetAsync();
                    var subs = await graphClient.Sites[site.Id].Lists[list.Id].Subscriptions.Request().GetAsync();
                    foreach (var sub in subs)
                    {
                        if ((sub.ExpirationDateTime - DateTime.Today).Value.Days < 60)

然后我想使用以下方式延长将来的日期:

Subscription subscription = new Subscription
         { ExpirationDateTime = DateTimeOffset.Parse("2020-11-01T00:00:00.9356913Z")  };
var newSub = await graphClient.Sites[site.Id].Lists[list.Id].Subscriptions[sub.Id].Request().UpdateAsync(subscription);

这给我一个错误:

500-内部服务器错误。

您要查找的资源有问题,无法显示。

如果我只使用Subscription ID,例如:
var newSub = await graphClient.Subscriptions[sub.Id].Request().UpdateAsync(subscription);

我收到一个错误:“代码:ResourceNotFound消息:未找到对象。”

那我该如何扩展订阅? 如果它们将过期,其他事情也将停止工作。

也许是“图形”权限,但是我在Azure门户中没有看到任何与“订阅”相关的权限。

谢谢

1 个答案:

答案 0 :(得分:0)

library(parallel) nC <- detectCores() mclapply(your_data, your_function, nC) 使您可以访问Microsoft Graph change notifications subscriptions(又名webhooks)。 graphClient.Subscriptions gives you access to socket.io streams

在构建dotnet应用程序时,我猜测您对Webhooks感兴趣,因此任何订阅操作都应使用graphClient.Sites[siteid].Lists[listid].Subscriptions完成。