postman Microsoft Graph API - OneDrive Sync问题

wa7juj8i  于 8个月前  发布在  Postman
关注(0)|答案(1)|浏览(86)

我使用此代码从OneDrive文件夹中检索文件。它工作得很好,除了更改需要很长时间才能传播。例如,如果我删除一个文件,响应将继续返回该文件约10分钟。我做错了什么?

string endpoint = "https://graph.microsoft.com/v1.0/users/{UserId}/drive/root/search(q='.txt')?$select=Id,SharepointIds,WebUrl,Name,Size,FileSystemInfo,CreatedBy,LastModifiedBy";

var httpClient = new HttpClient {
    BaseAddress = new Uri(endpoint)
};

httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

using (var response = await httpClient.GetAsync(endpoint)) {
    string json = await response.Content.ReadAsStringAsync();
    return JsonSerializer.Deserialize<ResponseModel>(json, options);
}

虽然我可以在Postman中重现这个问题,但Graph Explorer在几秒钟内就同步了。从那以后,我发现如果我使用图形资源管理器的访问令牌,同步问题会自行解决。
这是我正在使用的端点。我想我真正需要知道的是图形资源管理器如何生成其访问令牌(或同步令牌?)在这种情况下。

string endpoint = https://login.microsoftonline.com/{TenantId}/oauth2/v2.0/token
vbkedwbf

vbkedwbf1#

我发现问题了。我所需要做的就是将端点从:

https://graph.microsoft.com/v1.0/users/{UserId}/drive/root/

收件人:

https://graph.microsoft.com/v1.0/users/{UserId}/drive/root/delta/

不确定这是否是最好的方法,但微软的文档非常糟糕。我欢迎任何评论。

相关问题