Получение метады (информация о столбце) из sharepoint - PullRequest
0 голосов
/ 24 октября 2018

Я использую Microsoft Graph SDK для Java (https://github.com/microsoftgraph/msgraph-sdk-java) для извлечения документов из Sharepoint. Есть ли возможность извлекать также информацию о документах, кроме «стандартных», которые дает GraphServiceClient?

То есть с GraphServiceClient я могу получить createBy, description, lastModifiedDateTime, webUrl ... и приложить его, из которого я пытаюсь извлечь информацию, которая может быть дополнительно определена в Sharepoint - есть возможность создавать настраиваемые поля / столбцы для документов иустановить значения для каждого документа.

Я хочу извлечь эти дополнительные «метаданные». Как бы я это сделал?

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

По сути, DriveItem имеет меньше информации о файлах на sharepoint.Следовательно, использование ListItem позволяет получить все, что определено для документа ...

IGraphServiceClient graphClient = GraphServiceClient.
                                  builder().
                                  authenticationProvider(authenticator).
                                  logger(new Slf4jGraphLogger(logger)).
                                  buildClient();

ListItem fileMetadata = 
           graphClient.
           drives(driveId).
           items(item.id).
           listItem().
           buildRequest().get();

И там у fileMetadata есть "поля", в которых хранятся все метаданные, пользовательские и обычные ...

Мой тестовый запрос для одного документа:

  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

Ответ такой же, как и в предыдущем ответе.

0 голосов
/ 25 октября 2018

Просто попробуйте добавить $ expand к вашему запросу.

items = client
  .users(mailbox)
  .drives(drive-id)
  .items(att.id)
  .buildRequest(Lists.newArrayList(new QueryOption("$expand","fields"))) 
  .get();

Примечание:

Не все пользовательские метаданные могут быть получены с помощью графикаAPI.

Short:

/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"
            }
        }
    ]
}
...