Diferencias de los puntos de conexión de la API de OneDrive
La API de OneDrive está disponible desde varios puntos de conexión de API diferentes. Microsoft Graph es el punto de conexión preferido para tener acceso a OneDrive Personal, OneDrive para la Empresa y archivos de SharePoint Online. En algunos escenarios de empresa, como SharePoint Server 2016, puede que sea necesario tener acceso a los datos de OneDrive para la Empresa y SharePoint con el punto de conexión de API directo sin usar Microsoft Graph. En las notas siguientes se proporcionan detalles sobre las diferencias que puede observar entre Microsoft Graph y el punto de conexión de API directo.
Diferencias:
Espacios de nombres
Métodos
Al usar el punto de conexión directo, los métodos y las acciones necesitan un prefijo de espacio de nombres.
Por ejemplo, para usar sharedWithMe
en el punto de conexión directo, debe agregar un prefijo al nombre de la acción con oneDrive.
.
Tenga en cuenta que este prefijo distingue mayúsculas de minúsculas.
https://{server}/_api/v2.0/drive/oneDrive.sharedWithMe
Se debe agregar un prefijo en las siguientes acciones o métodos en el punto de conexión directo:
- Copiar
- Crear vínculo para compartir
- Crear sesión de carga
- Delta
- Invitar
- Archivos recientes
- Búsqueda
- Compartidos conmigo
Anotaciones de instancia
Las propiedades de elementos que se devuelven con una arroba (@
) también incluyen un espacio de nombres.
Al usar Microsoft Graph, el espacio de nombres siempre es microsoft.graph
.
En cambio, al tener acceso al punto de conexión de API directo, el espacio de nombres es diferente.
Nombre de la propiedad documentada (Microsoft Graph) | Nombre de la propiedad de la API directa |
---|---|
@microsoft.graph.downloadUrl |
@content.downloadUrl |
@microsoft.graph.sourceUrl |
@content.sourceUrl |
@microsoft.graph.conflictBehavior |
@name.conflictBehavior |
Nombres de propiedad
Algunos nombres de propiedad de los recursos se cambian cuando se devuelven de Microsoft Graph. En la siguiente tabla se incluyen recursos y nombres de propiedad que son diferentes entre Microsoft Graph y la API de OneDrive.
Nombre de la propiedad documentada (Microsoft Graph) | Nombre de la propiedad de la API directa |
---|---|
folder.view | folder.folderView |
Detectar un punto de conexión
Microsoft Graph proporciona un único punto de conexión de API, graph.microsoft.com
, para las cuentas de cliente, profesionales y educativas.
Al usar la API de OneDrive directamente, debe detectar el punto de conexión correcto de la API de OneDrive.
Para detectar el punto de conexión correcto de la API de OneDrive, debe usar Microsoft Graph.
Cuentas de OneDrive Personal
Para tener acceso a la API de OneDrive para OneDrive Personal, la aplicación debe usar el punto de conexión https://api.onedrive.com/v1.0
en todas las solicitudes.
Puede determinar si el usuario que ha iniciado sesión es un usuario de OneDrive Personal comprobando id_token
para tid: 9188040d-6c67-4c5b-b112-36a304b66dad
.
Puede encontrar más información sobre esto disponible en el tema Protocolos de la versión 2.0: uso del flujo implícito para las SPA.
OneDrive para la Empresa y SharePoint
Para tener acceso al punto de conexión de API directo para OneDrive para la Empresa, primero su aplicación debe detectar la dirección URL de Mi sitio del usuario. Puede realizar una solicitud a Microsoft Graph para que devuelva esta información:
GET https://graph.microsoft.com/v1.0/me?$select=mySite
HTTP/1.1 200 OK
Content-Type: application/json
{
"mySite": "https://contoso-my.sharepoint.com/personal/rgregg_contoso_com/"
}
Después, puede anexar la ruta de la API para la API de OneDrive, _api/v2.0/
, a esta dirección URL para crear el punto de conexión de API:
var apiEndPoint = response.mySite + '_api/v2.0';
En algunos casos, un usuario de una cuenta profesional o educativa puede que no obtenga un valor mySite
.
Esto sucede cuando la cuenta no ha creado todavía su OneDrive para la Empresa.
En este escenario, la aplicación necesitará usar Microsoft Graph para aprovisionar el OneDrive del usuario solicitando la carpeta raíz de la unidad desde Microsoft Graph.
Permisos
Para las llamadas a SharePoint y OneDrive para la Empresa, puede asignar los ámbitos de los permisos a su aplicación a través de Azure Portal con el servicio Office 365 SharePoint Online. En el caso de OneDrive Personal, la cadena del ámbito se pasa a un flujo de trabajo de OAuth directamente, de modo que no es necesario registrarlo con antelación.
Permisos de Microsoft Graph | OneDrive Personal | SharePoint y OneDrive para la Empresa |
---|---|---|
Files.Read | OneDrive.Read | MyFiles.Read |
Files.ReadWrite | OneDrive.ReadWrite | MyFiles.Write |
Files.ReadWrite.All | OneDrive.ReadWrite | Files.ReadWrite.All |
Files.ReadWrite.AppFolder | OneDrive.AppFolder | Files.ReadWrite (Files.ReadWrite.AppFolder No es compatible actualmente |
Sites.Read.All | N/D | Sites.Read.All |
Sites.ReadWrite.All | N/D | Sites.ReadWrite.All |