Как получить идентификатор сайта SharePoint с помощью Graph SharePoint Explorer - PullRequest
1 голос
/ 31 октября 2019

Как получить идентификатор сайта Microsoft SharePoint с помощью Microsoft Graph API Explorer.

Изначально я пытался использовать приведенный ниже API и смог получить идентификатор сайта

https://graph.microsoft.com/v1.0/sites/tenantName.sharepoint.com:/sites/TestSite:/drives?select=name,id

URL-адрес Sharepoint:

https://tenantName.sharepoint.com/sites/TestSite

Я получаю вывод:

{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives",
"value": [
    {
        "id": "b!l17-JY9YT67Qp-2TBvsUupBLMUF2SrJHp5VylCDZThT7HpCdF-7uQ6NTp6t-MbR5",
        "name": "Documents"
    }
]

}

Но, когда я пытаюсь с сайтом связи

Чей URL-адрес SharePoint:

https://tenantName.sharepoint.com/SitePages/DevHome.aspx

API Graph Explorer

https://graph.microsoft.com/v1.0/sites/tenantName.sharepoint.com:/SitePages/DevHome:/drives?select=name,id

Я получаю сообщение об ошибке ниже:

{
"error": {
    "code": "itemNotFound",
    "message": "The provided path does not exist, or does not represent a site",
    "innerError": {
        "request-id": "8329dfca-c63b-4af5-80b8-75f26be9e2e8",
        "date": "2019-10-31T13:18:33"
    }
}

}

Ответы [ 2 ]

1 голос
/ 31 октября 2019

A sitePage - это принципиально иной ресурс, чем site.

  • A site - это контейнер, которому принадлежит любое количество дочерних сайтов, приложений, списков, библиотек документов и т. Д.
  • A sitePage - это еще один ресурс, принадлежащийsite.
  • Ресурс sitePage в настоящее время доступен только в бета-версии Microsoft Graph.

Таким образом, запрос для /SitePages/DevHome.aspx будет:

/beta/sites/root/pages/{pageId}

Если вы еще не знаете правильный id для страницы, вы можете отфильтровать коллекцию SitePage на основе имени страницы:

/beta/sites/root/pages?$filter=name eq 'DevHome.aspx'

Это вернет коллекцию с одной сущностью (DevHome.aspx page):

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#sites('root')/pages",
    "value": [
        {
            "eTag": "",
            "id": "{id}",
            "lastModifiedDateTime": "2014-07-10T05:47:29Z",
            "name": "DevHome.aspx",
            "webUrl": "SitePages/DevHome.aspx",
            "createdBy": {
                "user": {
                    "displayName": "System Account"
                }
            },
            "lastModifiedBy": {
                "user": {
                    "displayName": "System Account"
                }
            },
            "parentReference": {
                "siteId": "{id}"
            },
            "contentType": {
                "id": "0x0101080062C83F3CFED6744A882F729480DE6C17",
                "name": "Wiki Page"
            },
            "webParts": [],
            "publishingState": {
                "level": "published",
                "versionId": "1.0"
            }
        }
    ]
}

Я также должен указать, что вы неправильно интерпретируете результат вашего первого запроса. Когда вы запрашиваете /v1.0/sites/{tenant}:/{path}:/drives?select=name,id, вы не получаете идентификаторы для каждого Site, вы получаете идентификаторы для каждого Drive в пределах этого Site. Вы можете найти объекты, содержащиеся на сайте, в разделе Отношения документации по ресурсам сайта

0 голосов
/ 31 октября 2019

Ваш вызов API Graph неверен. Попробуйте это: https://graph.microsoft.com/v1.0/sites/tenantName.sharepoint.com?select=name,id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...