c# - 无法使用 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 门户中没有看到任何与订阅相关的权限。
谢谢
解决方案
graphClient.Subscriptions
让您可以访问Microsoft Graph 更改通知订阅(又名 webhook)。graphClient.Sites[siteid].Lists[listid].Subscriptions
让您可以访问 socket.io 流。
当您正在构建一个 dotnet 应用程序时,我的猜测是您对 webhook 感兴趣,因此任何订阅操作都应该使用graphClient.Subscriptions
.
推荐阅读
- r - 如何在 R 中从 yahoo Finance 下载市值数据?
- groovy - Scriptrunner:版本更新时更新 Jira 子任务
- c++ - 我可以简化这种方法来安装和导出基于 CMake 的项目吗?
- android - 在 Pixel 3 中出现“应用程序中检测到 JNI 错误”的错误消息
- python - Tensorflow中keras LSTM的输入形状?错误:得到 8 个数组的列表,预期为 1
- scala - 导入语句上的“错误:未找到:值 myparallel”
- c# - 如何使用 .NET Core 配置 Elmah 以登录到 SQL?
- tensorflow - 如何为张量流模型推理输入多特征
- r - 如何_to_set_`list.len=1000`_global_in_R?
- scala - 如何更快地使用 select over avro struct 进行流式查询?