【发布时间】:2020-06-14 09:14:34
【问题描述】:
我正在尝试使用example from the docs 之后的 MS Graph Batch API 对用户列表进行批处理 update,但收到错误“消息:无效的批处理负载格式”。
// batch disable all users
var allUsers = await GraphHelper.client.Users.Request().Select("id").GetAsync();
var batchRequestContent = new BatchRequestContent();
allUsers.Select(user =>
{
var httpRequest = GraphHelper.client.Users[user.Id].Request().GetHttpRequestMessage();
httpRequest.Method = HttpMethod.Put;
httpRequest.Content = GraphHelper.client.HttpProvider.Serializer.SerializeAsJsonContent(new User { AccountEnabled = false });
return batchRequestContent.AddBatchRequestStep(httpRequest);
});
var userUpdateResult = await GraphHelper.client.Batch.Request().PostAsync(batchRequestContent);
下面的禁用用户的代码已经在没有批处理的情况下工作。
var user = new User { AccountEnabled = false };
var userResult = await GraphHelper.client.Users[id].Request().UpdateAsync(user);
【问题讨论】:
-
您确定 PostAsync(batchRequestContent); 正在发送所需的属性吗?
-
@abestrad 你说得对,当我使用 charls 代理进行检查时,它只是将
{"requests": [] }发送到https://graph.microsoft.com/v1.0/$batch,但与文档中的示例相比,我看不到我缺少什么.
标签: c# azure azure-active-directory microsoft-graph-api azure-ad-b2c