Разрешение ответа от Microsoft Graph API - PullRequest
0 голосов
/ 04 февраля 2020

Я немного застрял, поэтому в основном я сделал вызов графа api/resources/plannertaskdetails

$apiUrl = $('https://graph.microsoft.com/v1.0/planner/tasks/' + $taskId +'/details')
$response = Invoke-RestMethod -Headers @{Authorization = "Bearer $($token.access_token)"} -Uri $apiUrl -Method Get

и получил ответ, что-то вроде этого:

@{@odata.context=xxxx/details/$entity; description=value 1; previewType=automatic; id=bxxxxm; references=; checklist=}

ссылки и контрольный список - это списки (https://docs.microsoft.com/en-us/graph/api/resources/plannertaskdetails?view=graph-rest-1.0)

Поэтому, когда я делаю $ response.checklist, я вижу @ {18907 =; 35669 =; 41911 =} (которые представляют элементы списка)

Поэтому, когда я делаю, например, $response.checklist.18907, я вижу @{@odata.type=#microsoft.graph.plannerChecklistItem; isChecked=True; title=Step 1; orderHint=; lastModifiedDateTime=; lastModifiedBy=}

Теперь мой вопрос: как я могу легко получить доступ к этим объектам списка внутри? Это.

Чтобы сделать что-то вроде

foreach($option in $response.checklist)
{
    $option.Title= ....;
}

В этом ответе $ я могу получить, например, описание ($response.discription or $description.id), но контрольный список и ссылку нет.

Иначе я немного застрял, если я попытаюсь | ConvertFrom- Json, я получаю ошибку Invalid JSON primitive, et c.

Любой совет будет оценен.

1 Ответ

0 голосов
/ 05 февраля 2020

Я думаю, что это должно работать:

foreach($checklistId in $response.checklist.Keys)
{
    $response.checklist[$checklistId].title= ....;
}

AFAIK, Invoke-WebRequest возвращает структуру словаря синтаксического анализа в PowerShell, анализируя вывод JSON.

...