Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Usar o Microsoft Graph
Este tópico contém informações sobre como autorizar um aplicativo usando contas da Microsoft para OneDrive pessoal. No entanto, essa abordagem não é mais recomendada. Os novos aplicativos devem ser desenvolvidos usando o Microsoft Graph e seguir o processo de autorização na Autorização e entrada para OneDrive no Microsoft Graph.
Introdução
Para usar a API do OneDrive, você precisa ter um token de acesso que autentique seu aplicativo para um conjunto específico de permissões de um usuário. Nesta seção, você aprenderá a:
- Registrar seu aplicativo para fazer uma ID de cliente e um segredo de cliente.
- Inscrever seu usuário no OneDrive com os escopos especificados usando o fluxo de tokens ou o fluxo de códigos.
- Cancelar a inscrição do usuário (opcional).
A API do OneDrive usa o esquema de autenticação padrão do OAuth 2.0 para autenticar os usuários e gerar tokens de acesso. Você precisa fornecer um token de acesso para cada chamada de API usando uma das seguintes opções:
- Um cabeçalho HTTP:
Authorization: bearer {token}
Registrar seu aplicativo
Para autenticar seu aplicativo, você precisa registrar seu aplicativo com a Microsoft e fornecer alguns detalhes sobre o aplicativo.
Para registrar seu aplicativo
Confira mais detalhes no tópico sobre como registrar seu aplicativo na API do OneDrive.
Conectar os usuários
Seu aplicativo deve iniciar o processo de entrada contatando o serviço Web de autorização de conta da Microsoft com um escopo especificado e receber um token de acesso. O fluxo segue fluxos de autenticação padrão OAuth 2.0 e exige chamadas a partir de um navegador da Web ou controle de navegador Web.
Escopos de autenticação
Os escopos determinam que tipo de acesso o aplicativo recebe quando o usuário está conectado. Todos os escopos dão suporte a logon único na Web, ou seja, se o usuário já tiver entrado no OneDrive, ele poderá ignorar o fluxo de autenticação e ir diretamente para o fluxo de autorização.
| Nome do escopo | Descrição | Obrigatório |
|---|---|---|
| offline_access | Permite que seu aplicativo funcione offline, mesmo quando o usuário não está ativo. Isso fornece seu aplicativo um refresh_token que pode ser usado para gerar tokens de acesso adicionais conforme o necessário. Este escopo não está disponível para o fluxo de token. | Não |
| onedrive.readonly | Concede permissão de somente leitura a todos os arquivos do OneDrive do usuário, inclusive aos compartilhados com ele. | Sim |
| onedrive.readwrite | Concede permissão de leitura e gravação a todos os arquivos do OneDrive do usuário, inclusive aos compartilhados com ele. Para criar links de compartilhamento, esse escopo é necessário. | Sim |
| onedrive.appfolder | Concede permissões de leitura e gravação para uma pasta específica ao seu aplicativo. | Sim |
Por exemplo, um aplicativo comum pode solicitar os seguintes escopos:
onedrive.readwrite offline_access
Fluxos de autenticação com suporte
Há dois fluxos de autenticação com suporte para sua escolha:
Fluxo do tokens
O fluxo de autenticação mais fácil é o fluxo token. Esse fluxo é útil para receber um token de acesso rapidamente para usar a API do OneDrive de forma interativa. Esse fluxo não fornece um token de atualização, portanto não pode ser usado para ter acesso de longo prazo à API do OneDrive.

Para iniciar o processo de inscrição com o fluxo de tokens, use um navegador da Web ou controle de navegador da Web para carregar uma solicitação de URL.
GET https://login.live.com/oauth20_authorize.srf?client_id={client_id}&scope={scope}
&response_type=token&redirect_uri={redirect_uri}
Parâmetros de cadeia de caracteres de consulta necessários
| Nome do parâmetro | Valor | Descrição |
|---|---|---|
| client_id | string | O valor da ID do cliente criada para o aplicativo. |
| redirect_uri | string | A URL de redirecionamento para a qual o navegador é enviado quando a autenticação é concluída. |
| response_type | string | O tipo de resposta esperado do fluxo de autorização. Para esse fluxo, o valor deve ser token. |
| scope | string | Uma lista separada por espaços de escopos exigidos pelo seu aplicativo. |
Use esta URL de redirecionamento para aplicativos móveis e da área de trabalho https://login.live.com/oauth20_desktop.srf.
Resposta
Após a autenticação e a autorização do seu aplicativo, o navegador da Web é redirecionado para a URL de redirecionamento com mais parâmetros adicionados à URL.
https://login.live.com/oauth20_authorize.srf#access_token=EwC...EB
&authentication_token=eyJ...3EM&token_type=bearer&expires_in=3600
&scope=onedrive.readwrite&user_id=3626...1d
Os valores de access_token, authentication_token e user_id estão truncados no exemplo anterior. Os valores de access_token e authentication_token são muito longos.
Você pode usar o valor de access_token para fazer solicitações à API do OneDrive.
Fluxo do códigos
O fluxo de códigos para autenticação é um processo de três etapas com chamadas separadas para autenticar e autorizar o aplicativo e gerar um token de acesso para uso da API do OneDrive. Isso também permite que seu aplicativo receba um token de atualização que permitirá o uso no longo prazo da API em alguns cenários, para permitir o acesso quando o usuário não estiver usando ativamente o aplicativo.

Etapa 1. Receber um código de autorização
Para iniciar o processo de inscrição com o fluxo de códigos, use um navegador da Web ou controle de navegador da Web para carregar esta solicitação de URL.
GET https://login.live.com/oauth20_authorize.srf?client_id={client_id}&scope={scope}
&response_type=code&redirect_uri={redirect_uri}
Parâmetros de cadeia de caracteres de consulta necessários
| Nome do parâmetro | Valor | Descrição |
|---|---|---|
| client_id | string | A ID do cliente criada para o seu aplicativo. |
| scope | string | Uma lista separada por espaços de escopos exigidos pelo seu aplicativo. |
| redirect_uri | string | A URL de redirecionamento para a qual o navegador é enviado quando a autenticação é concluída. |
| response_type | string | O tipo de resposta esperado do fluxo de autorização. Para esse fluxo, o valor deve ser code. |
Resposta
Após a autenticação e a autorização do seu aplicativo, o navegador da Web é redirecionado para a URL de redirecionamento com mais parâmetros adicionados à URL.
https://login.live.com/oauth20_authorize.srf?code=df6aa589-1080-b241-b410-c4dff65dbf7c
Etapa 2. Resgatar o código dos tokens de acesso
Após receber o valor de code, você poderá resgatar esse código para um conjunto de tokens que permitem autenticar com a API do OneDrive. Para recuperar o código, realize a seguinte solicitação:
POST https://login.live.com/oauth20_token.srf
Content-Type: application/x-www-form-urlencoded
client_id={client_id}&redirect_uri={redirect_uri}&client_secret={client_secret}
&code={code}&grant_type=authorization_code
Parâmetros obrigatórios do corpo da solicitação
O corpo da solicitação é uma cadeia de caracteres de URL codificada corretamente, com alguns parâmetros obrigatórios.
| Nome do parâmetro | Valor | Descrição |
|---|---|---|
| client_id | string | O valor da ID do cliente criada para o aplicativo. |
| redirect_uri | string | A URL de redirecionamento para a qual o navegador é enviado quando a autenticação é concluída. Isso deve corresponder ao valor de redirect_uri na primeira solicitação. |
| client_secret | string | O segredo do cliente criado para o seu aplicativo. |
| código | string | O código de autorização recebido na primeira solicitação de autenticação. |
Nota Para aplicativos Web, a parte de domínio do URI de redirecionamento deve corresponder à parte de domínio do URI de redirecionamento especificado no Centro de Desenvolvedores da conta Microsoft.
Resposta
Se a chamada é bem-sucedida, a resposta para a solicitação POST contém uma cadeia de caracteres JSON que inclui várias propriedades, inclusive access_token, token_type e refresh_token, se você solicitou o escopo wl.offline_access.
{
"token_type":"bearer",
"expires_in": 3600,
"scope":"wl.basic onedrive.readwrite",
"access_token":"EwCo...AA==",
"refresh_token":"eyJh...9323"
}
Agora você pode armazenar e usar o access_token fornecido para fazer solicitações autenticadas para a API do OneDrive.
Importante: Trate os valores de access_token e refresh_token nesta resposta com a mesma segurança de uma senha de usuário.
O token de acesso é válido somente para o número de segundos especificado na propriedade expires_in. Você pode solicitar um novo token de acesso usando o token de atualização (se estiver disponível) ou repetindo a solicitação de autenticação desde o início.
Etapa 3. Receber um token de acesso ou um token de atualização
Se o seu aplicativo tiver solicitado acesso a wl.offline_access, esta etapa retornará um refresh_token que pode ser usado para gerar tokens de acesso adicionais após o token inicial expirar.
Para resgatar o token de atualização para um novo token de acesso, faça a solicitação a seguir:
POST https://login.live.com/oauth20_token.srf
Content-Type: application/x-www-form-urlencoded
client_id={client_id}&redirect_uri={redirect_uri}&client_secret={client_secret}
&refresh_token={refresh_token}&grant_type=refresh_token
Parâmetros obrigatórios do corpo da solicitação
O corpo da solicitação é uma cadeia de caracteres de URL codificada corretamente, com alguns parâmetros obrigatórios.
| Nome do parâmetro | Valor | Descrição |
|---|---|---|
| client_id | string | A ID do cliente criada para o aplicativo. |
| redirect_uri | string | A URL de redirecionamento para a qual o navegador é enviado quando a autenticação é concluída. Isso deve corresponder ao valor redirect_uri usado na primeira solicitação. |
| client_secret | string | O segredo do cliente criado para o seu aplicativo. |
| refresh_token | string | O token de atualização recebido anteriormente. |
Nota Para aplicativos Web, a parte de domínio do URI de redirecionamento deve corresponder à parte de domínio do URI de redirecionamento especificado no Live SDK site de gerenciamento de aplicativos.
Resposta
Se a chamada for bem-sucedida, a resposta para a solicitação POST conterá uma cadeia de caracteres JSON que inclui várias propriedades, inclusive access_token, authentication_token e refresh_token, se você solicitou o escopo wl.offline_access.
{
"token_type":"bearer",
"expires_in": 3600,
"scope": "wl.basic onedrive.readwrite wl.offline_access",
"access_token":"EwCo...AA==",
"refresh_token":"eyJh...9323"
}
Agora você pode armazenar e usar o access_token para fazer solicitações autenticadas para a API do OneDrive.
Importante: Trate os valores de access_token e refresh_token nesta resposta com a mesma segurança de uma senha de usuário.
O token de acesso é válido somente para o número de segundos especificado na propriedade expires_in. Solicite um novo token de acesso usando o token de atualização (se estiver disponível) ou repetindo a solicitação de autenticação desde o início.
Cancelar a inscrição do usuário
Para cancelar a inscrição do usuário, execute as seguintes etapas:
- Exclua qualquer valor de cache,
access_tokenourefresh_token, que você recebeu do fluxo de OAuth anteriormente. - Execute qualquer ação de cancelamento de inscrição no seu aplicativo (por exemplo, limpeza de estado local, remoção de itens armazenados em cache etc.).
- Faça uma chamada ao serviço Web de autorização usando esta URL:
GET https://login.live.com/oauth20_logout.srf?client_id={client_id}&redirect_uri={redirect_uri}
Essa chamada removerá os cookies que permitem o logon único e garantirá que a próxima vez que o aplicativo iniciar a experiência de entrada, o usuário receberá uma solicitação para entrar um nome de usuário e senha a fim de continuar.
Parâmetros de cadeia de caracteres de consulta necessários
| Nome do parâmetro | Valor | Descrição |
|---|---|---|
| client_id | string | O valor da ID do cliente criada para o aplicativo. |
| redirect_uri | string | A URL de redirecionamento para a qual o navegador é enviado quando a autenticação é concluída. Isso deve corresponder exatamente ao valor redirect_uri usado na solicitação get token. |
Após remover o cookie, o navegador será redirecionado para a URL de redirecionamento que você forneceu. Quando o navegador carrega sua página de redirecionamento, nenhum parâmetro de cadeia de caracteres de consulta de autenticação é definido, e você pode deduzir que o usuário fez logoff.
Revogar o acesso
Os usuários podem revogar o acesso do aplicativo às contas deles visitando a página de consentimento de gerenciamento de conta da Microsoft.
Quando o consentimento para seu aplicativo é revogado, qualquer token de atualização fornecido anteriormente ao seu aplicativo deixa de ser válido. Você precisará repetir o fluxo de autenticação para solicitar um novo acesso e atualizar o token do zero.
Erros
Se houver erros com a autenticação, o navegador da Web será redirecionado para uma página de erro. Embora a página de erro sempre apresente uma mensagem amigável para o usuário final, a URL para a página de erro inclui informações adicionais que podem ajudar você a depurar o que aconteceu. Nem sempre essas informações são exibidas no conteúdo da página de erro exibida no navegador.
https://login.live.com/err.srf?lc=1033#error={error_code}&error_description={message}
A URL inclui parâmetros de consulta que você pode usar para analisar o erro e responder adequadamente. Esses parâmetros sempre são incluídos como um indicador (depois do caractere #). O conteúdo da página sempre exibirá uma mensagem de erro genérica para o usuário.
Se o usuário escolher não dar permissão ao seu aplicativo, o fluxo será redirecionado para seu redirect_uri e incluirá os mesmos parâmetros de erro.
Parâmetros de erro
| Nome do parâmetro | Valor | Descrição |
|---|---|---|
| error | string | Código de erro que identifica o erro. |
| error_description | string | Uma descrição do erro. |
Tópicos relacionados
Os tópicos a seguir contêm visões gerais de alto nível de outros conceitos que se aplicam à API do OneDrive.