Acceso a OneDrive para la Empresa en un inquilino Multi-Geo

Obtener acceso a un sitio de usuario de OneDrive para la Empresa, también conocido como un sitio personal o Mi sitio, es habitual en aplicaciones personalizadas. Este artículo describe cómo trabajar con los sitios de OneDrive para la Empresa en un inquilino Multi-Geo.

Puede usar una de varias API para acceder a un sitio de OneDrive para la Empresa:

  • API de Microsoft Graph (preferido).
  • API de CSOM de SharePoint
  • API de REST de SharePoint

Leer OneDrive para la Empresa con Microsoft Graph

Al usar Microsoft Graph para leer un archivo de OneDrive para la Empresa, no tiene que saber dónde se encuentra el sitio de OneDrive del usuario. Cuando solicite la unidad, como se muestra en los ejemplos siguientes, recibirá los archivos que necesite.

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

Leer los archivos de OneDrive para la Empresa con Microsoft Graph

Leer archivos mediante CSOM es lo mismo que leer archivos en otras colecciones de sitios; un sitio de OneDrive para la Empresa es una colección de sitios de SharePoint normal con una biblioteca de documentos que contiene los archivos. Consulte la sección Vea también para obtener ejemplos de uso de CSOM y REST para cargar archivos.

Obtener la ubicación de un sitio de OneDrive para la Empresa del usuario con Microsoft Graph

Los ejemplos siguientes muestran cómo obtener la ubicación de un sitio de OneDrive para la Empresa mediante la API de Microsoft Graph.

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

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

Respuesta de ejemplo para una ubicación del sitio de OneDrive para la Empresa del usuario mediante 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 obtener más información, vea el ejemplo MultiGeo.UserProfileUpdates.

Obtener la ubicación de un sitio de OneDrive para la Empresa del usuario con CSOM y REST

El siguiente ejemplo muestra una consulta basada en REST para obtener la ubicación de un sitio de OneDrive para la Empresa.

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

Respuesta de ejemplo para una ubicación del sitio de OneDrive para la Empresa del usuario mediante REST

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

Si usa C#, puede usar CSOM para obtener la ubicación de un sitio de OneDrive para la Empresa.

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;
}

Vea también