首页 > 解决方案 > 无法使用 MS 图更新网络挂钩订阅

问题描述

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

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内部服务器错误。

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

如果我像这样只使用订阅 ID:
var newSub = await graphClient.Subscriptions[sub.Id].Request().UpdateAsync(subscription);

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

那么我该如何延长订阅呢?如果它们过期,其他东西也将停止工作。

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

谢谢

标签: c#.net-coremicrosoft-graph-apiwebhookssharepoint-online

解决方案


graphClient.Subscriptions让您可以访问Microsoft Graph 更改通知订阅(又名 webhook)。graphClient.Sites[siteid].Lists[listid].Subscriptions 让您可以访问 socket.io 流

当您正在构建一个 dotnet 应用程序时,我的猜测是您对 webhook 感兴趣,因此任何订阅操作都应该使用graphClient.Subscriptions.


推荐阅读