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:
- Copiar
- Criar um Link de Compartilhamento
- Criar uma Sessão de Upload
- Delta
- Convidar
- Arquivos Recentes
- Pesquisar
- Compartilhado Comigo
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 |