【问题标题】:How to differ Site Page and Wiki Page in MS Graph or SharePoint REST API如何在 MS Graph 或 SharePoint REST API 中区分网站页面和 Wiki 页面
【发布时间】:2020-08-04 03:21:30
【问题描述】:

我使用新的 SharePoint 在线体验在 SitePages 库中创建了一个 SharePoint 页面。页面已创建,我尝试使用 MS Graph 端点获取页面属性:

https://graph.microsoft.com/v1.0/drives/{drive-id}/root:/site_page.aspx?expand=listItem

我得到的回应:

{
    ...
    "name": "site_page.aspx",
    ...
    "file": {
        "mimeType": "application/xml",
        "hashes": {
            "quickXorHash": ""
        }
    },
    ...
    "listItem": {
        ...
        "id": "4",
        ...
        "contentType": {
            "id": "0x0101009D1CB255DA76424F860D91F20E6C411800020BAE24978F3545AFD24007B325ACF9"
        },

        "fields": {
            "FileLeafRef": "site_page.aspx",
            "Title": "site_page",
            "LinkTitle": "site_page",
            "id": "4",
            "ContentType": "Site Page",
            ...
        }
    }
}

然后我将 Wiki 页面内容添加到此库中以支持我网站中的 Wiki 页面。 我创建了一个新的 Wiki 页面并使用 MS Graph 端点再次获取页面属性:

    https://graph.microsoft.com/v1.0/drives/{drive-id}/root:/wiki_page.aspx?expand=listItem

我得到的回应:

    {
    ...
    "name": "wiki_page.aspx",
    ...
    "file": {
        "mimeType": "application/xml"
    },
    ...
    "listItem": {
        ...
        "id": "5",
        ...
        "contentType": {
            "id": "0x0101009D1CB255DA76424F860D91F20E6C411800020BAE24978F3545AFD24007B325ACF9"
        },

        "fields": {
            "FileLeafRef": "wiki_page.aspx",
            "Title": "wiki_page",
            "LinkTitle": "wiki_page",
            "id": "5",
            "ContentType": "Site Page",
            "WikiField" : "..."
            ...
        }
    }
}

如您所见,这两个项目具有相同的内容类型。这怎么可能? 唯一的区别是 wiki_page 项目不包含“哈希”属性,但包含“WikiField”属性(存储 wiki 页面内容的位置)。 有没有其他区分页面类型的方法?

【问题讨论】:

    标签: microsoft-graph-api onedrive sharepoint-online sharepoint-rest-api


    【解决方案1】:

    你可以试试这个端点:GET /sites/{site-id}/lists/{list-id}/items?expand=fields(select= ContentType)

    我的测试结果:

    {
                "@odata.etag": "\"b3b04ace-40cd-4847-a3d8-678bc658216d,2\"",
                "createdDateTime": "2020-04-22T05:34:06Z",
                "eTag": "\"b3b04ace-40cd-4847-a3d8-678bc658216d,2\"",
                "id": "11",
                "lastModifiedDateTime": "2020-04-22T05:34:06Z",
                "webUrl": "https://xxxx.sharepoint.com/sites/dev/SitePages/wikipage.aspx",
                "createdBy": {
                    "user": {
                        "email": "amos@xxxx.onmicrosoft.com",
                        "id": "fc1e9add-6f9c-4b95-83e1-a022441681d7",
                        "displayName": "test"
                    }
                },
                "lastModifiedBy": {
                    "user": {
                        "email": "amos@xxxx.onmicrosoft.com",
                        "id": "fc1e9add-6f9c-4b95-83e1-a022441681d7",
                        "displayName": "test"
                    }
                },
                "parentReference": {
                    "id": "79e13173-d5ee-4a17-a081-5c94d148f905",
                    "siteId": "xxxx.sharepoint.com,b57886ef-4c2a-4d56-ad29-27266638ac3b,b62d1450-8e6f-4be7-84a3-f6600fd6cc14"
                },
                "contentType": {
                    "id": "0x01010800511BB12BD4FB664A89516226DBDDF1FB"
                },
                "fields@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('siteid')/lists('63307f0b-bc1c-4372-bfea-6352ed57a0ff')/items('11')/fields/$entity",
                "fields": {
                    "@odata.etag": "\"b3b04ace-40cd-4847-a3d8-678bc658216d,2\"",
                    "ContentType": "Wiki Page"
                }
            },
            {
                "@odata.etag": "\"70f12845-7646-4b2b-85bd-4a8074c105a0,1\"",
                "createdDateTime": "2020-04-22T05:35:54Z",
                "eTag": "\"70f12845-7646-4b2b-85bd-4a8074c105a0,1\"",
                "id": "12",
                "lastModifiedDateTime": "2020-04-22T05:35:54Z",
                "webUrl": "https://xxxx.sharepoint.com/sites/dev/SitePages/webpartpage.aspx",
                "createdBy": {
                    "user": {
                        "email": "amos@xxxx.onmicrosoft.com",
                        "id": "fc1e9add-6f9c-4b95-83e1-a022441681d7",
                        "displayName": "test"
                    }
                },
                "lastModifiedBy": {
                    "user": {
                        "email": "amos@xxxx.onmicrosoft.com",
                        "id": "fc1e9add-6f9c-4b95-83e1-a022441681d7",
                        "displayName": "test"
                    }
                },
                "parentReference": {
                    "id": "79e13173-d5ee-4a17-a081-5c94d148f905",
                    "siteId": "xxxx.sharepoint.com,b57886ef-4c2a-4d56-ad29-27266638ac3b,b62d1450-8e6f-4be7-84a3-f6600fd6cc14"
                },
                "contentType": {
                    "id": "0x0101090100FAC6DAD225005749BE7D6124B50B156E"
                },
                "fields@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('siteid')/lists('63307f0b-bc1c-4372-bfea-6352ed57a0ff')/items('12')/fields/$entity",
                "fields": {
                    "@odata.etag": "\"70f12845-7646-4b2b-85bd-4a8074c105a0,1\"",
                    "ContentType": "Web Part Page"
                }
            }
    

    你最好检查一下你的页面类型。

    更新:

    "fields@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('siteid')/lists('63307f0b-bc1c-4372-bfea-6352ed57a0ff')/items('13')/fields/$entity"
        "fields": {
                        "@odata.etag": "\"18361706-416b-4a71-8d31-bce87c1a57e4,3\"",
                        "ContentType": "Site Page"
                    }
    

    【讨论】:

    • 您是如何创建 wiki 页面的?创建页面后您是否更改了内容类型?默认情况下,为 Wiki 和站点页面类型设置站点页面内容类型
    • 创建页面后我什么都没做。
    • 感谢您的快速回复,您是否通过单击“Wiki 页面”创建了 ID 为“13”的页面?
    • 不,这是一个站点页面。
    • 好的,问题是当我通过点击“Wiki Page”创建页面时,该页面将具有“Site Page”内容类型
    猜你喜欢
    • 1970-01-01
    • 2021-11-03
    • 2014-06-07
    • 2023-03-11
    • 2011-04-07
    • 1970-01-01
    • 2015-12-12
    • 2017-01-18
    • 1970-01-01
    相关资源
    最近更新 更多