使用Microsoft Graph REST API访问Word(.docx)文件的内容?

时间:2018-08-09 19:28:00

标签: api ms-word office365 microsoft-graph

是否有一种方法可以通过Microsoft Graph API获取存储在云中的Word文档的内容,而不必本地下载文件?

目标是构建一个可分析Word文档内部内容并从中产生一些有趣数据的应用程序。但是,在搜索了Microsoft的Dev Center,Graph Explorer及其API的文档存储库之后,我找不到任何可以为我提供数据的API端点。

我可以找到一些处理Excel内容的端点,但是没有一个处理Word的端点。 Microsoft Graph不支持检索Word文档的内容吗?

编辑:例如,我知道我可以读取“消息”的内容,甚至可以通过查询参数对其进行搜索,如Microsoft的示例之一所示。但是我似乎找不到如何使用Word文档执行此操作。

2 个答案:

答案 0 :(得分:0)

恐怕您不能直接访问单词内容。您可以做的是使用DriveItem的Web URL属性,打开与相关联的Word Online或本机世界(如果已安装)的文档。 您可以在下面使用它显示特定的项目或所有项目:

GET /users/{userId}/drive/items/{itemId}
GET me/drive/root/children/

以下是结果:

{
    "@microsoft.graph.downloadUrl": "",
    "createdDateTime": "2018-08-10T01:43:00Z",
    "eTag": "\"{00000000-3E94-4161-9B82-0000000},2\"",
    "id": "00000000IOJA4ONFB6MFAZXARX7L7RU4NV",
    "lastModifiedDateTime": "2018-08-10T01:43:00Z",
    "name": "daily check.docx",
    "webUrl": "https://xxxxxxx",
    "cTag": "\"c:{00000000-3E94-4161-9B82-37FAFF1A71B5},2\"",
    "size": 26330,
    "createdBy": {
        "user": {
            "email": "000000.onmicrosoft.com",
            "id": "000000-93dc-41b7-b89b-760c4128455a",
            "displayName": "Chris"
        }
    },
    "lastModifiedBy": {
        "user": {
            "email": "0000@0000.onmicrosoft.com",
            "id": "00000000-93dc-41b7-b89b-00000000",
            "displayName": "Chris"
        }
    },
    "parentReference": {
        "driveId": 
   "b!000000000gdQMtns72t31yqWMhnFCjmCqO3tR5ypOf17NKl2USqo1bNqhOzrZ",
        "driveType": "business",
        "id": "00000VN6Y2GOVW7725BZO354PWSELRRZ",
        "path": "/drive/root:"
    },
    "file": {
        "mimeType": "application/vnd.openxmlformats- 
   officedocument.wordprocessingml.document",
        "hashes": {
            "quickXorHash": "OSOK7r2hIVSeY1+FjaCnlOxn2p8="
        }
    },
    "fileSystemInfo": {
        "createdDateTime": "2018-08-10T01:43:00Z",
        "lastModifiedDateTime": "2018-08-10T01:43:00Z"
    }
}

答案 1 :(得分:0)

好吧,可以下载文档的内容。 参见:Download the contents of a DriveItem

例如:

GET /v1.0/me/drive/root:/some-folder/document.docx:/content

但是您将获得整个docx,包括嵌入式图像和所有图像。不知道这是您在寻找什么。


作为示例,请参见{em>提取 docx并将其转换为markdown的helix-word2md项目。