Partilhar via


Acessar o OneDrive for Business em um locatário multigeográfico

Acessar o site de OneDrive for Business de um usuário, também conhecido como um site pessoal ou meu site, é um cenário comum em aplicativos personalizados. Este artigo descreve como trabalhar com OneDrive for Business sites em um locatário multi-geográfico.

Você pode usar uma das várias APIs para acessar um site OneDrive for Business:

  • Microsoft API do Graph (preferencial)
  • API CSOM SharePoint
  • API REST do SharePoint

Ler arquivos OneDrive for Business usando o Microsoft Graph

Quando você usa o Microsoft Graph para ler um arquivo OneDrive for Business, não precisa saber onde o site do OneDrive do usuário está localizado. Ao solicitar a unidade, conforme mostrado nos exemplos a seguir, você receberá os arquivos necessários.

GET https://graph.microsoft.com/v1.0/users/bert@contoso.onmicrosoft.com/drive/root/children

GET https://graph.microsoft.com/v1.0/users/me/drive/root/children

Ler arquivos OneDrive for Business usando CSOM e REST

A leitura de arquivos usando o CSOM é idêntica à leitura de arquivos em outras coleções de sites; um site OneDrive for Business é uma coleção de sites regular do SharePoint com uma biblioteca de documentos contendo arquivos. Consulte a seção Ver também para obter exemplos para usar CSOM e REST para carregar arquivos.

Obter a localização do site de OneDrive for Business de um usuário usando o Microsoft Graph

Os exemplos a seguir mostram como obter a localização de um site OneDrive for Business usando o microsoft API do Graph.

GET https://graph.microsoft.com/v1.0/users/admin@contoso.onmicrosoft.com/mySite

GET https://graph.microsoft.com/v1.0/me/mySite

Resposta de exemplo para um local do site de OneDrive for Business do usuário usando o Microsoft Graph

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('admin@contoso.onmicrosoft.com')/mySite",
    "value": "https://contoso-my.sharepoint.com/personal/admin_contoso_onmicrosoft_com/"
}

Para obter mais informações, consulte o exemplo MultiGeo.UserProfileUpdates .

Obter a localização do site de OneDrive for Business de um usuário usando CSOM e REST

O exemplo a seguir mostra uma consulta baseada em REST para obter a localização de um site OneDrive for Business.

GET https://contoso.sharepoint.com/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)/PersonalUrl?%40v=%27i%3A0%23.f%7Cmembership%7Cbert%40contoso.onmicrosoft.com%27

Resposta de exemplo para um local do site de OneDrive for Business do usuário usando REST

{
    "d":{
        "PersonalUrl":"https://contoso-my.sharepoint.com/personal/admin_contoso_onmicrosoft_com/"
        }
}

Se você estiver usando C#, poderá usar o CSOM para obter a localização de um site OneDrive for Business.

public string GetUserPersonalUrlCSOM(ClientContext ctx, string userPrincipalName)
{
  string result = null;

  PeopleManager peopleManager = new PeopleManager(ctx);
  var userProperties = peopleManager.GetPropertiesFor(userPrincipalName);
  this.clientContext.ExecuteQuery();
  result = userProperties.PersonalUrl;

  return result;
}

Confira também