Microsoft Graph API - обновление существующей группы - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь обновить описание для существующей группы в Azure AD, но получаю сообщение об ошибке, которое не знаю, как решить.

public static async Task<bool> UpdateGroup(GraphServiceClient graphClient, Group group)
{
    // Update the group.
    Group grp = await graphClient.Groups[group.Id].Request().GetAsync();
    grp.Description = group.Description;

    await graphClient.Groups[group.Id].Request().UpdateAsync(grp);

    return true;
}

Выше просто выбрасываетисключение:

Код: BadRequest Сообщение: операция не поддерживается.

Я не уверен, является ли это отсутствием разрешенных разрешений для API в Azure или еслиобновление группы действительно не поддерживается?Я могу создавать / удалять группы достаточно легко, поэтому обновление существующей группы должно быть таким же простым?

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Ваша проблема в том, что вы сначала заполняете grp, изменяете одно свойство, а затем пытаетесь PATCH весь объект группы.Таким образом, наряду с вашим обновленным описанием вы также пытаетесь PATCH (и отсюда и ошибка) нескольких свойств только для чтения (например, id).

Ваш код должен выглядеть следующим образом:

await graphClient
    .Groups[group.Id]
    .Request()
    .UpdateAsync(new Group() {
        Description = group.Description
    });
0 голосов
/ 29 сентября 2018

Операция обновления для группы поддерживается в Graph API. enter image description here

У меня нет VS env на персональном ПК, поэтому я не могу сейчас проверить библиотеку графов (можете проверить это 2 октября).Если Graph Libray также поддерживает API, код должен работать хорошо, поэтому вы можете сначала проверить конфигурацию разрешений.

await graphClient.Groups[group.Id].Request().UpdateAsync(grp);

Некоторые ссылки из кода библиотеки Graph:

/// <summary>
 /// Updates the specified Group using PATCH.
 /// </summary>
 /// <param name="groupToUpdate">The Group to update.</param>
 /// <returns>The updated Group.</returns>
  public System.Threading.Tasks.Task<Group> UpdateAsync(Group groupToUpdate)
   {
   }




   /// <summary>
    /// Updates the specified Group using PATCH.
    /// </summary>
    /// <param name="groupToUpdate">The Group to update.</param>
    /// <param name="cancellationToken">The <see cref="CancellationToken"/> for the request.</param>
    /// <returns>The updated Group.</returns>
    public async System.Threading.Tasks.Task<Group> UpdateAsync(Group groupToUpdate, CancellationToken cancellationToken)
    {

    } 

https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/f807196101e20d30fbc8628206a2eb5850334a92/src/Microsoft.Graph/Requests/Generated/GroupRequest.cs

...