Обзор конфигурации клиента с поддержкой нескольких регионов

При работе с клиентом SharePoint необходимо иметь возможность определить, является ли он клиентом с несколькими регионами, а также определить географические расположения по умолчанию и расположения спутниковой связи.

На следующем рисунке показан клиент с несколькими регионами с:

  • Географическое расположение по умолчанию в Северная Америка.
  • Спутниковое географическое расположение в Европе.
  • Спутниковое географическое расположение в Азии.

Карта мира, показывающая географическое расположение по умолчанию в Северная Америка, а также спутниковые географические расположения в Европе и Азии с администраторами клиента, корневыми и url-адресами личных сайтов для конкретного языка

Получение сведений о конфигурации клиента с несколькими регионами

В зависимости от сценария для доступа к сайту клиента с несколькими регионами можно использовать один или сочетание следующих API:

  • API CSOM SharePoint: не поддерживается с поддержкой нескольких регионов. В зависимости от сценария необходимо выбрать правильное географическое расположение (например, для доступа к профилю пользователя или выполнения операций API клиента).

  • Microsoft API Graph: поддержка нескольких регионов. Для доступа к сайтам клиентов с несколькими регионами рекомендуется использовать Microsoft Graph.

  • REST API SharePoint. Как правило, этот API используется в контексте URL-адреса сайта, и, следовательно, не имеет значения, является ли клиент несколькими регионами. Для некоторых сценариев REST API (например, поиска или профилей пользователей) может потребоваться выполнять вызовы по географическому расположению.

Использование API CSOM

Получить географическое расположение клиента можно с помощью CSOM с помощью Tenant класса и метода, GetTenantInstances как показано в следующем фрагменте кода:

Tenant tenant = new Tenant(clientContext);
var tenantInstances = tenant.GetTenantInstances();
clientContext.Load(tenantInstances);
clientContext.ExecuteQuery();

Использование microsoft API Graph

Сведения о географическом расположении клиента можно получить с помощью Microsoft Graph. В следующем примере возвращается коллекция с одним объектом в каждом географическом расположении.

Примечание.

В следующем примере кода используется dataLocationCode атрибут объекта siteCollection . На момент публикации это свойство доступно только в бета-версии конечной точки Microsoft Graph.

GET https://graph.microsoft.com/beta/sites?filter=siteCollection/root%20ne%20null&select=webUrl,siteCollection

Пример ответа для клиента с поддержкой нескольких регионов

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#sites",
    "value": [
        {
            "webUrl": "https://contoso.sharepoint.com/",
            "siteCollection": {
                "dataLocationCode":"NAM",
                "hostname": "contoso.sharepoint.com"
            }
        },
        {
            "webUrl": "https://contosoeur.sharepoint.com/",
            "siteCollection": {
                "dataLocationCode":"EUR",
                "hostname": "contosoeur.sharepoint.com"
            }
        },
        {
            "webUrl": "https://contosoapc.sharepoint.com/",
            "siteCollection": {
                "dataLocationCode":"APC",
                "hostname": "contosoapc.sharepoint.com"
            }
        }
    ]
}

Дополнительные сведения см. в примере MultiGeo.TenantInformationCollection .

Примечание.

Дополнительные сведения о разрешениях и настройке приложения см. в разделе Настройка примера приложения с несколькими регионами.

Узнайте, является ли клиент несколькими регионами.

Вы можете использовать Microsoft Graph, чтобы определить, является ли клиент мульти-географическим, так как запросы через Microsoft Graph к арендаторам с несколькими регионами возвращают несколько элементов в коллекции.

В следующем примере показаны результаты вызова Microsoft Graph к клиенту с одним регионом.

GET https://graph.microsoft.com/beta/sites?filter=siteCollection/root%20ne%20null&select=webUrl,siteCollection

Пример ответа для клиента с одним регионом

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#sites",
    "value": [
        {
            "webUrl": "https://singlegeotest.sharepoint.com/",
            "siteCollection": {
                "dataLocationCode":"",
                "hostname": "singlegeotest.sharepoint.com"
            }
        }
    ]
}

См. также