Microsoft Graph API-更新现有组

时间:2018-09-29 15:04:59

标签: c# azure-active-directory microsoft-graph

我正在尝试更新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消息:不支持该操作。

我不确定这是否缺少对Azure中API的启用权限,或者是否不真正支持更新组? 我可以很容易地创建/删除组,所以确定更新现有组应该同样容易吗?

2 个答案:

答案 0 :(得分:1)

您的问题是,您首先要填充grp,更改单个属性,然后尝试PATCH 整个组对象。因此,除了更新的说明外,您还尝试PATCH(这是错误的出处)几个只读属性(例如id)。

您的代码应如下所示:

await graphClient
    .Groups[group.Id]
    .Request()
    .UpdateAsync(new Group() {
        Description = group.Description
    });

答案 1 :(得分:0)

Graph API支持组的更新操作。enter image description here

我的个人计算机上没有VS env,因此现在无法测试图形库(我可以在10月2日进行测试)。如果Graph Libray也支持该API,则代码应该可以正常运行,因此您可以先检查权限配置。

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

一些来自图形库代码的参考:

/// <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