Microsoft graph api 向MS Graph API发出批处理请求时出现未经授权的错误401

Microsoft graph api 向MS Graph API发出批处理请求时出现未经授权的错误401,microsoft-graph-api,Microsoft Graph Api,我们有一个应用程序正在迁移到MS Graph API,用于读取电子邮件,进行一些处理,然后将其移动到不同的文件夹。我们能够连接到MS Graph并以顺序方式执行上述操作。但是,我们希望分批处理它们,以减少网络呼叫和延迟 我们正在使用MSAL4J库开发JAVA应用程序,并引用link::来创建批处理请求 然而,当我们发送批处理请求时,我们得到了以下错误(即使是获取用户详细信息的单个请求) 响应{协议=http/1.1,代码=401,消息=Unauthorized,url=https://graph

我们有一个应用程序正在迁移到MS Graph API,用于读取电子邮件,进行一些处理,然后将其移动到不同的文件夹。我们能够连接到MS Graph并以顺序方式执行上述操作。但是,我们希望分批处理它们,以减少网络呼叫和延迟

我们正在使用MSAL4J库开发JAVA应用程序,并引用link::来创建批处理请求

然而,当我们发送批处理请求时,我们得到了以下错误(即使是获取用户详细信息的单个请求)

响应{协议=http/1.1,代码=401,消息=Unauthorized,url=https://graph.microsoft.com/v1.0/$batch}

添加的API/权限为Mail.ReadWrite,具有管理员同意和用户.Read 如果批量处理需要其他设置,请告知我们

多谢各位

编辑1:

下面是返回上述响应的代码

Request userRequest = new Request.Builder().url(graphClient.me().getRequestUrl()).build();
    MSBatchRequestStep userRequestStep = new MSBatchRequestStep("1", userRequest, null);
    
    
    // Create the batch request content with the steps created above
    List<MSBatchRequestStep> batchSteps = Arrays.asList(userRequestStep);
    MSBatchRequestContent batchRequestContent = new MSBatchRequestContent(batchSteps);

    ICoreAuthenticationProvider auth =
        (ICoreAuthenticationProvider)graphClient.getAuthenticationProvider();
    OkHttpClient client = HttpClients.createDefault(auth);

    // Send the batch request content to the /$batch endpoint
    String batchContent = batchRequestContent.getBatchRequestContent();
    Request batchRequest = new Request.Builder()
        .url("https://graph.microsoft.com/v1.0/$batch")
        .post(RequestBody.create(MediaType.parse("application/json"), batchContent))
        .build();

    Response batchResponse = client.newCall(batchRequest).execute();
Request userRequest=newrequest.Builder().url(graphClient.me().getRequestUrl()).build();
MSBatchRequestStep userRequestStep=新的MSBatchRequestStep(“1”,userRequest,null);
//使用上面创建的步骤创建批处理请求内容
List batchSteps=Arrays.asList(userRequestStep);
MSBatchRequestContent batchRequestContent=新的MSBatchRequestContent(batchSteps);
ICoreAuthenticationProviderAuth=
(ICoreAuthenticationProvider)graphClient.getAuthenticationProvider();
OkHttpClient=HttpClients.createDefault(auth);
//将批处理请求内容发送到/$batch端点
字符串batchContent=batchRequestContent.getBatchRequestContent();
Request batchRequest=newrequest.Builder()
.url(“https://graph.microsoft.com/v1.0/$batch“)
.post(RequestBody.create(MediaType.parse(“application/json”),batchContent))
.build();
Response batchResponse=client.newCall(batchRequest.execute();

401并不意味着您缺乏权限。您处理了哪个错误请求?请提供相关性和timestamp@Carl赵:用代码编辑了这个问题details@Shruthi:无法找到相关ID。通过发送时间戳获得以下详细信息:1602671828968客户端请求iD:8db310e2-5e7e-4dd6-9927-748916219bca请求iD:2312b82c-191a-4c88-8dc0-9533ECF2DFF0您能否正确提供时间戳和请求iD?