Diferenças entre os pontos de extremidade da API do OneDrive

A API do OneDrive está disponível em vários pontos de extremidade de API diferentes. O Microsoft Graph é o ponto de extremidade preferido para acessar arquivos online do OneDrive pessoal, do OneDrive for Business e do SharePoint. Em alguns cenários corporativos, como no SharePoint Server 2016, talvez seja necessário acessar dados do OneDrive for Business e do SharePoint usando o ponto de extremidade de API direta, sem usar o Microsoft Graph. As observações a seguir fornecem detalhes sobre as diferenças que você pode perceber entre o Microsoft Graph e o ponto de extremidade de API direta.

Diferenças:

Namespaces

Métodos

Ao usar o ponto de extremidade direto, os métodos e ações exigem um prefixo de namespace. Por exemplo, para usar sharedWithMe no ponto de extremidade direto, você deve prefixar o nome da ação com oneDrive.. Observe que esse prefixo diferencia maiúsculas de minúsculas.

https://{server}/_api/v2.0/drive/oneDrive.sharedWithMe

As ações ou métodos a seguir devem ser prefixados no ponto de extremidade direto:

Anotações de instância

Propriedades de itens retornados com uma arroba (@) também incluem um namespace. Ao usar o Microsoft Graph, o namespace é sempre microsoft.graph. No entanto, ao acessar o ponto de extremidade de API direta, o namespace é diferente.

Nome da propriedade documentada (Microsoft Graph) Nome da propriedade de API direta
@microsoft.graph.downloadUrl @content.downloadUrl
@microsoft.graph.sourceUrl @content.sourceUrl
@microsoft.graph.conflictBehavior @name.conflictBehavior

Nomes de propriedade

Alguns nomes de propriedades nos recursos são alterados quando retornam do Microsoft Graph. A tabela a seguir contém os nomes de propriedades e recursos diferentes entre o Microsoft Graph e a API do OneDrive.

Nome da propriedade documentada (Microsoft Graph) Nome da propriedade de API direta
folder.view folder.folderView

Como descobrir um ponto de extremidade

O Microsoft Graph fornece um único ponto de extremidade de API, graph.microsoft.com para contas de consumidor e corporativa/estudante. Ao usar a API do OneDrive diretamente, você deve descobrir o ponto de extremidade correto da API do OneDrive.

Para descobrir o ponto de extremidade correto para a API do OneDrive, use o Microsoft Graph.

Contas pessoas do OneDrive

Para acessar a API do OneDrive para o OneDrive pessoal, seu aplicativo deve usar o ponto de extremidade https://api.onedrive.com/v1.0 para todas as solicitações.

Você pode determinar se o usuário conectado é um usuário do OneDrive pessoal verificando o id_token para tid: 9188040d-6c67-4c5b-b112-36a304b66dad. Encontre mais informações sobre isso no tópico Protocolo do Active Directory v2.

OneDrive for Business e SharePoint

Para acessar o ponto de extremidade de API direta para o OneDrive for Business, seu aplicativo deve descobrir primeiro a URL de Meu Site do usuário. Faça uma solicitação para o Microsoft Graph para retornar essas informações:

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/"
}

Depois, você pode acrescentar o caminho da API para a API do OneDrive, _api/v2.0/ para esta URL, a fim de construir o ponto de extremidade da API:

var apiEndPoint = response.mySite + '_api/v2.0';

Em alguns casos, um usuário corporativo/estudante não pode ter um valor mySite retornado. Isso ocorre quando a conta ainda tiver criado seu OneDrive for Business. Nesse cenário, seu aplicativo precisará usar o Microsoft Graph para provisionar o OneDrive do usuário solicitando a pasta raiz da unidade ao Microsoft Graph.

Permissões

No caso de chamadas para o SharePoint e o OneDrive for Business, você pode atribuir esses escopos de permissão ao seu aplicativo por meio do Portal do Azure pelo serviço do Office 365 SharePoint Online. Para o OneDrive – Pessoal, a cadeia de caracteres do escopo é passada para o fluxo de trabalho do OAuth diretamente e não precisa ser registrada com antecedência.

Permissões do Microsoft Graph OneDrive – Pessoal SharePoint e OneDrive for Business
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 (Não há suporte atualmente para Files.ReadWrite.AppFolder
Sites.Read.All N/D Sites.Read.All
Sites.ReadWrite.All N/D Sites.ReadWrite.All