从共享点获取元数据(列信息)
Getting metada (column information) from sharepoint
我正在使用 Java (https://github.com/microsoftgraph/msgraph-sdk-java) 的 Microsoft Graph SDK 从 Sharepoint 中提取文档。
除了 GraphServiceClient 提供的 "standard" 之外,是否还有可能提取有关文档的信息?
GraphServiceClient 的意思是我可以获得 createdBy、description、lastModifiedDateTime、webUrl... 并且我试图从中提取可以在 Sharepoint 中额外定义的信息 - 有可能进行自定义 fields/columns 用于文档并为每个文档设置值。
我想提取额外的 "metadata"。我该怎么做?
尝试将 $expand 添加到您的查询中。
items = client
.users(mailbox)
.drives(drive-id)
.items(att.id)
.buildRequest(Lists.newArrayList(new QueryOption("$expand","fields")))
.get();
注:
Graph 无法检索所有自定义元数据 API。
短:
/items?expand=fields
我的实际测试查询:
https://graph.microsoft.com/v1.0/sites/{site id}/drives/{drive-id}/list/items?expand=fields
响应(MyTestMetadata1 是我的测试元数据):
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('site id')/drives('drive id')/list/items",
"value": [
{
"@odata.etag": "\"c800e34f-6ee4-4d46-8a56-2811078509e7,2\"",
"createdDateTime": "2018-10-25T04:20:05Z",
"eTag": "\"c800e34f-6ee4-4d46-8a56-2811078509e7,2\"",
"id": "4",
"lastModifiedDateTime": "2018-10-25T04:20:07Z",
"webUrl": "https://xxx.sharepoint.com/sites/Test/Shared%20Documents/CenterText.js",
"createdBy": {
"user": {
"email": "xxx@xxx.onmicrosoft.com",
"id": "f5d39dec-1642-48b2-90ee-1da477f61a1c",
"displayName": "xxx"
}
},
"lastModifiedBy": {
"user": {
"email": "xxx@xxx.onmicrosoft.com",
"id": "f5d39dec-1642-48b2-90ee-1da477f61a1c",
"displayName": "xxx"
}
},
"parentReference": {
"id": "3638238d-a591-4105-b6c7-a9251be75d93"
},
"contentType": {
"id": "0x0101007264AD3105D388488F4C729B0CC03CCF"
},
"fields@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('site-id')/drives('drive-id')/list/items('4')/fields/$entity",
"fields": {
"@odata.etag": "\"c800e34f-6ee4-4d46-8a56-2811078509e7,2\"",
"Modified": "2018-10-25T04:20:07Z",
"FileLeafRef": "CenterText.js",
"MyTestMetadata1": "OK",
"id": "4",
"ContentType": "Document",
"Created": "2018-10-25T04:20:05Z",
"AuthorLookupId": "6",
"EditorLookupId": "6",
"_CheckinComment": "",
"LinkFilenameNoMenu": "CenterText.js",
"LinkFilename": "CenterText.js",
"DocIcon": "js",
"FileSizeDisplay": "1209",
"ItemChildCount": "0",
"FolderChildCount": "0",
"_ComplianceFlags": "",
"_ComplianceTag": "",
"_ComplianceTagWrittenTime": "",
"_ComplianceTagUserId": "",
"_CommentCount": "",
"_LikeCount": "",
"Edit": "0",
"_UIVersionString": "1.0",
"ParentVersionStringLookupId": "4",
"ParentLeafNameLookupId": "4"
}
}
]
}
基本上,DriveItem 中关于共享点上的文件的信息较少。
因此,使用 ListItem 获取为文档定义的所有内容...
IGraphServiceClient graphClient = GraphServiceClient.
builder().
authenticationProvider(authenticator).
logger(new Slf4jGraphLogger(logger)).
buildClient();
ListItem fileMetadata =
graphClient.
drives(driveId).
items(item.id).
listItem().
buildRequest().get();
那里的文件元数据 "fields" 存储了所有元数据,包括自定义元数据和常用元数据...
我对单个文档的测试查询是:
https://graph.microsoft.com/v1.0/sites/{site id}/drives/{drive-id}/items/{item-id}/listItem
和
https://graph.microsoft.com/v1.0/sites/{site id}/drives/{drive-id}/items/{item-id}/listItem/fields
回复和之前的回答一样
我正在使用 Java (https://github.com/microsoftgraph/msgraph-sdk-java) 的 Microsoft Graph SDK 从 Sharepoint 中提取文档。 除了 GraphServiceClient 提供的 "standard" 之外,是否还有可能提取有关文档的信息?
GraphServiceClient 的意思是我可以获得 createdBy、description、lastModifiedDateTime、webUrl... 并且我试图从中提取可以在 Sharepoint 中额外定义的信息 - 有可能进行自定义 fields/columns 用于文档并为每个文档设置值。
我想提取额外的 "metadata"。我该怎么做?
尝试将 $expand 添加到您的查询中。
items = client
.users(mailbox)
.drives(drive-id)
.items(att.id)
.buildRequest(Lists.newArrayList(new QueryOption("$expand","fields")))
.get();
注:
Graph 无法检索所有自定义元数据 API。
短:
/items?expand=fields
我的实际测试查询:
https://graph.microsoft.com/v1.0/sites/{site id}/drives/{drive-id}/list/items?expand=fields
响应(MyTestMetadata1 是我的测试元数据):
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('site id')/drives('drive id')/list/items",
"value": [
{
"@odata.etag": "\"c800e34f-6ee4-4d46-8a56-2811078509e7,2\"",
"createdDateTime": "2018-10-25T04:20:05Z",
"eTag": "\"c800e34f-6ee4-4d46-8a56-2811078509e7,2\"",
"id": "4",
"lastModifiedDateTime": "2018-10-25T04:20:07Z",
"webUrl": "https://xxx.sharepoint.com/sites/Test/Shared%20Documents/CenterText.js",
"createdBy": {
"user": {
"email": "xxx@xxx.onmicrosoft.com",
"id": "f5d39dec-1642-48b2-90ee-1da477f61a1c",
"displayName": "xxx"
}
},
"lastModifiedBy": {
"user": {
"email": "xxx@xxx.onmicrosoft.com",
"id": "f5d39dec-1642-48b2-90ee-1da477f61a1c",
"displayName": "xxx"
}
},
"parentReference": {
"id": "3638238d-a591-4105-b6c7-a9251be75d93"
},
"contentType": {
"id": "0x0101007264AD3105D388488F4C729B0CC03CCF"
},
"fields@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('site-id')/drives('drive-id')/list/items('4')/fields/$entity",
"fields": {
"@odata.etag": "\"c800e34f-6ee4-4d46-8a56-2811078509e7,2\"",
"Modified": "2018-10-25T04:20:07Z",
"FileLeafRef": "CenterText.js",
"MyTestMetadata1": "OK",
"id": "4",
"ContentType": "Document",
"Created": "2018-10-25T04:20:05Z",
"AuthorLookupId": "6",
"EditorLookupId": "6",
"_CheckinComment": "",
"LinkFilenameNoMenu": "CenterText.js",
"LinkFilename": "CenterText.js",
"DocIcon": "js",
"FileSizeDisplay": "1209",
"ItemChildCount": "0",
"FolderChildCount": "0",
"_ComplianceFlags": "",
"_ComplianceTag": "",
"_ComplianceTagWrittenTime": "",
"_ComplianceTagUserId": "",
"_CommentCount": "",
"_LikeCount": "",
"Edit": "0",
"_UIVersionString": "1.0",
"ParentVersionStringLookupId": "4",
"ParentLeafNameLookupId": "4"
}
}
]
}
基本上,DriveItem 中关于共享点上的文件的信息较少。 因此,使用 ListItem 获取为文档定义的所有内容...
IGraphServiceClient graphClient = GraphServiceClient.
builder().
authenticationProvider(authenticator).
logger(new Slf4jGraphLogger(logger)).
buildClient();
ListItem fileMetadata =
graphClient.
drives(driveId).
items(item.id).
listItem().
buildRequest().get();
那里的文件元数据 "fields" 存储了所有元数据,包括自定义元数据和常用元数据...
我对单个文档的测试查询是:
https://graph.microsoft.com/v1.0/sites/{site id}/drives/{drive-id}/items/{item-id}/listItem
和
https://graph.microsoft.com/v1.0/sites/{site id}/drives/{drive-id}/items/{item-id}/listItem/fields
回复和之前的回答一样