Microsoft Graph 订阅列表 - 如何将更新的项目发送到订阅

问题描述 投票:0回答:1

我有一个持久的天蓝色函数,应该在更新项目共享点列表时调用该函数。我已添加订阅

{
    ChangeType = "updated",
    NotificationUrl = $"https://XXXXxxx.azurewebsites.net/api/orchestrators/startapproval",
    Resource = "sites/" + site.Id + "/lists/" + list.Id + "/",
    ExpirationDateTime = DateTime.Now.AddDays(10),
    ClientState = "ApprovalProcess",
    LatestSupportedTlsVersion = "v1_2"
}

当我更新项目时,会调用azure函数,但我没有更新的项目信息。

我如何知道哪个项目已更新?

在以前版本的持久azure功能中,更新的项目数据会获取一个xml。现在我什至在纪录片中都看不到这个选项。

azure sharepoint azure-functions microsoft-graph-api azure-durable-functions
1个回答
0
投票

如果您想定位列表中的特定项目,请修改您的订阅以定位特定列表项目。

"Resource": "sites/{site-id}/lists/{list-id}/items/{item-id}"

如果您更新的目标是列表中的任何项目,请保留原始订阅并获取更新的项目 ID,如下所示:

var httpClient = new HttpClient();
var graphApiUrl = $"https://graph.microsoft.com/v1.0/sites/{siteId}/lists/{listId}/items?$filter=lastModifiedDateTime ge {DateTime.UtcNow.AddMinutes(-1).ToString("yyyy-MM-ddTHH:mm:ssZ")}";
var response = await httpClient.GetAsync(graphApiUrl);

string jsonResponse = await response.Content.ReadAsStringAsync();
dynamic items = JsonConvert.DeserializeObject(jsonResponse);

foreach (var item in items.value)
{
    // Extract item ID and perform desired actions
    string itemId = item.id;
}
© www.soinside.com 2019 - 2024. All rights reserved.