c# - 在图形 API 中使用 GUID 获取共享点列表项

标签 c# microsoft-graph-api sharepoint-online

我们需要将文档上传到 SharePoint Online 列表,然后向该文档添加一些可搜索的属性。我们正在使用 Microsoft Graph 上传文档。

由于我们需要能够根据不同的条件搜索文档,因此我们将文档上传到列表中。

这是请求的快照:

string requestUrl = "https://graph.microsoft.com/v1.0/drives/" +
    driveID +
    "/items/root:/" +
    fileName +
    ".docx:/content";

HttpClient client = new HttpClient();

HttpRequestMessage message =
    new HttpRequestMessage(HttpMethod.Put, requestUrl);
message.Headers.Authorization =
    new AuthenticationHeaderValue("Bearer", accessToken);

message.Content = new StreamContent(requestContent);
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type",
    "application/json; odata=verbose; charset=utf-8");

HttpResponseMessage response = await client.SendAsync(message);

当文档上传后,我们会收到包含 GUID 和文档名称的响应。

{
  "createdDateTime": "2018-02-27T10:44:02Z",
  "eTag": "\"{446F157D-ED2C-4C1B-BB3F-56897A6190DA},1\"",
  "id": "01JSWLMSD5CVNHFLHNDNGLWP2WGNNGDEG2",
  "lastModifiedDateTime": "2018-02-27T10:44:02Z",
  "name": "2018-02-27 15.43.55.7268PM.docx"
}

当我们试图获取该文档以添加填充列表中的其他列时,技巧就来了。

我们可以通过使用列表中文档的 id 字段来获取文档,但是当我们上传文档时 id 不会作为响应的一部分返回,所以不能将该值用于我们的请求。

我们的挑战是使用我们从 JSON 响应返回的字段来获取 ListItem,但到目前为止,我们尝试过的每一种方法都以失败告终。

我们已尝试使用上面响应中提到的 idname 字段,但得到的是 HTTP 400 响应。以下是我们尝试过多种变体的请求。

.../lists/My Library/items?expand=fields&filter=fields/name eq '2018-02-27 15.43.55.7268PM.docx'

...:/lists/My Library/items?filter=id eq '01JSWLMSD5CVXUILHDNGLWP2WGNNGDEG2' 

我们在哪里失去了它?

最佳答案

要检索 item,您需要在 URL 本身中包含 id:

/sites/{id}/lists/{id}/items/01JSWLMSD5CVXUILHDNGLWP2WGNNGDEG2?$expand=fields

我还建议使用 Microsoft Graph Client Library for .NET而不是使用 HttpClient 自己滚动。

关于c# - 在图形 API 中使用 GUID 获取共享点列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49011662/

相关文章:

c# - Entity Framework ICollection 导航属性仅在测试时为 null

c# - 编译器如何优化密封类实现的虚方法

angular - MS Graph Explorer - 列出加入的团队 - 错误 404

azure - 是否可以使用 Azure AD 身份验证访问 SharePoint Online 数据?

c# - 将 SQL 查询转换为 LINQ - 不工作

c# - MSB4018 "GenerateServiceWorkerAssetsManifest"任务意外失败

microsoft-graph-api - Microsoft Graph 范围 v2 oauth

azure - 通过 Graph API 更改 M365 群组电子邮件

typescript - 如何在运行时配置 spfx 扩展(如 ENV 变量)?

azure - Sharepoint API Headless 获取访问 token