Windows Dev Center

Tarefas comuns no acesso do Microsoft OneDrive a partir do seu aplicativo

Este tópico descreve como realizar tarefas comuns ao acessar o conteúdo do OneDrive de um usuário a partir do seu aplicativo.

Percorrendo o diretório do OneDrive

Para usar as APIs do Live Connect para saber mais sobre uma pasta de nível superior do usuário no diretório do OneDrive, faça uma solicitação para me/skydrive ou USER_ID/skydrive. Veja como fazer essa chamada:

  • No REST (Representational State Transfer), use GET.
  • No JavaScript, use a função WL.api , especificando um parâmetro method de "GET".
  • Em C#, use o método LiveConnectClient.GetAsync.
  • No Objective-C, use o método LiveConnectClient getWithPath.
  • No Java, use o método LiveConnectClient.getAsync.

No objeto formatado por JSON (JavaScript Object Notation) que é retornado, há duas estruturas importantes: a estrutura id, que representa a ID da pasta de primeiro nível, e a estrutura upload_location, que representa o local da pasta de primeiro nível para a qual é possível carregar arquivos, fotos, vídeos e áudio.

Se você fizer uma solicitação para me/skydrive/files ou USER_ID/skydrive/files, o objeto formatado por JSON que é retornado contém informações sobre todas as pastas filho, álbuns filho e arquivos apenas nas pasta de primeiro nível do usuário.

De lá, você pode percorrer todo o diretório do usuário do OneDrive ao fazer uma solicitação com FOLDER_ID/files ou ALBUM_ID/files, onde FOLDER_ID ou ALBUM_ID representa a estrutura id que corresponde a uma ID de pasta ou ID de álbum, respectivamente, em qualquer local do diretório.

De forma semelhante à pasta de primeiro nível do usuário do OneDrive, você pode usar a estrutura upload_location com qualquer pasta ou álbum para carregar arquivos neles. Além disso, você também pode usar a estrutura upload_location como qualquer arquivo, foto, vídeo ou áudio para substituir o conteúdo desse arquivo, foto, vídeo ou áudio.

Por exemplo, veja como o diretório do OneDrive do usuário pode parecer conceitualmente.

GET https://apis.live.net/v5.0/me/skydrive?access_token=ACCESS_TOKEN
---
200 OK
{
    "id": "folder.a6b2a7e8f2515e5e", 
    ...
    "upload_location": "https://apis.live.net/v5.0/folder.a6b2a7e8f2515e5e/files",
    ...
    "type": "folder",
    ...
}
---
GET https://apis.live.net/v5.0/folder.a6b2a7e8f2515e5e/files?access_token=ACCESS_TOKEN
---
200 OK
{
    "data": [
        {
            "id": "folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!110", 
            ...
            "upload_location": "https://apis.live.net/v5.0/folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!110/files/"
            ...
            "type": "folder",
            ...
        }, {
            "id": "photo.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!131", 
            ...
            "upload_location": "https://apis.live.net/v5.0/photo.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!131/content/", 
            ...
            "type": "photo",
            ...
        }, {
            "id": "file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!119", 
            ...             
            "upload_location": "https://apis.live.net/v5.0/file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!119/content/", 
            ...
            "type": "file", 
            ...
        }
    ]
}

Início

Obtendo uma lista dos objetos do OneDrive compartilhados com o usuário conectado

Para descobrir todos os objetos do OneDrive que são compartilhados com o usuário conectado, use o escopo wl.contacts_skydrive para fazer uma solicitação GET para /USER_ID/skydrive/shared, onde USER_ID é me ou a ID do usuário que deu o consentimento. Veja um exemplo.

GET https://apis.live.net/v5.0/me/skydrive/shared?access_token=ACCESS_TOKEN

Observação  A API do OneDrive não dá suporte à criação, atualização ou exclusão de arquivos em uma pasta que é compartilhada com o usuário conectado . Os aplicativos só podem manipular arquivos de propriedade do usuário conectado.

Importante  Não damos suporte a aplicativos de terceiros que carregam arquivos para pastas compartilhadas.

Início

Usando nomes amigáveis para acessar determinadas pastas do OneDrive

Para acessar determinadas pastas do OneDrive, você pode usar nomes amigáveis em vez de IDs de pasta. Use os nomes amigáveis a seguir para acessar essas pastas correspondentes na  Interface do Usuário do OneDrive:

  • USER_ID/skydrive/camera_roll representa a pasta Álbum de fotos do OneDrive.
  • USER_ID/skydrive/my_documents representa a pasta Documentos.
  • USER_ID/skydrive/my_photos representa a pasta Imagens.
  • USER_ID/skydrive/public_documents representa a pasta Pública.

Em cada caso, substitua USER_ID por me para o usuário conectado ou uma ID de usuário para qualquer outro usuário que consentir.

Por exemplo, para ler as propriedades da pasta Documentos, use uma chamada à API REST para a ID da pasta, como a seguir.

GET https://apis.live.net/v5.0/folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!110?access_token=ACCESS_TOKEN

No entanto, você também pode ler as propriedades da pasta Documentos com uma chamada à API REST para o nome amigável da pasta, da seguinte forma:

GET https://apis.live.net/v5.0/me/skydrive/my_documents?access_token=ACCESS_TOKEN

Observação  Para mover ou copiar um arquivo para uma pasta com um nome amigável, forneça apenas o nome amigável como o valor da estrutura destination. Veja um exemplo de como chamar a API de REST para mover um arquivo até a pasta Documentos.

MOVE https://apis.live.net/v5.0/file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!126

Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json

{
    "destination": "my_documents"
}

Início

Obtendo uma lista dos documentos mais recentes usados pelo usuário

Para obter uma lista dos documentos mais recentes do OneDrive que o usuário utilizou, use o escopo wl.skydrive para fazer uma solicitação GET para /USER_ID/skydrive/recent_docs, em que USER_ID é me ou a ID do usuário que deu o consentimento. Veja um exemplo.

GET https://apis.live.net/v5.0/me/skydrive/recent_docs?access_token=ACCESS_TOKEN

Início

Obtendo a cota de armazenamento total e restante do usuário do OneDrive

Para obter informações sobre o espaço de armazenamento disponível e não usado do usuário no OneDrive, faça uma chamada GET para /me/skydrive/quota ou /USER_ID/skydrive/quota, em que USER_ID é a ID do usuário conectado. Veja a seguir um exemplo com o uso da API REST.

GET https://apis.live.net/v5.0/me/skydrive/quota?access_token=ACCESS_TOKEN

O objeto formatado por JSON retornado se parece com isso.

{
    "quota": 26843545600,
    "available": 26805319016
}

No exemplo anterior, o campo quota é o espaço de armazenamento total disponível do usuário, em bytes. O campo available é o espaço de armazenamento não usado restante do usuário, também em bytes.

Dica  Antes de carregar um arquivo, faça com que seu aplicativo verifique se há espaço disponível suficiente no armazenamento. Por exemplo, seu aplicativo pode obter o tamanho do arquivo em bytes e compará-lo com o número de bytes no campo available. Se o tamanho do arquivo for maior do que o campo available, seu aplicativo não deverá tentar carregar o arquivo. Se o aplicativo tentar carregar o arquivo mesmo assim, a solicitação falhará e o OneDrive retornará o erro a seguir.

{
    "error": {
        "code": "resource_quota_exceeded", 
        "message": "The user has reached his or her storage quota limit."
    }
}

Início

Visualizando um item do OneDrive

Para visualizar um item do OneDrive, faça uma solicitação GET para /skydrive/get_item_preview?type=TYPE&url=URL. O parâmetro de cadeia de consulta opcional type é um dos seguintes:

  • thumbnail
  • small (para obter uma visualização máxima de 100 × 100 pixels)
  • album (máximo de 200 × 200)
  • normal (máximo de 800 × 800)

O parâmetro de cadeia de consulta url é um link compartilhado para o item no OneDrive. Veja a seguir dois exemplos: um que usa uma URL do OneDrive longa e outro que usa a URL sdrv.ms menor (sdrv.ms é um serviço de abreviação de URLs exclusivo do OneDrive).

GET https://apis.live.net/v5.0/skydrive/get_item_preview?type=normal&url=https%3A%2F%2Fskydrive.live.com%2Fredir.aspx%3Fcid%3Da6b2a7e8f2515e5e%26amp%3Bresid%3DA6B2A7E8F2515E5E!132%26amp%3Bparid%3DA6B2A7E8F2515E5E!110%26amp%3Bauthkey%3D!ACuMMo37Ju8_xw0x

GET https://apis.live.net/v5.0/skydrive/get_item_preview?type=normal&url=http%3A%2F%2Fsdrv.ms%2FLTIvcyx

Observe o seguinte:

  • Para fazer a solicitação get_item_preview, você não precisa solicitar escopos nem fornecer um token de acesso.
  • Se o item não for uma foto e uma visualização estiver associada a ele, uma visualização em miniatura será exibida e o parâmetro type será ignorado se tiver sido fornecido.
  • Uma resposta bem-sucedida tem um valor responseStatus " 302 Found" com o link para a visualização do item no cabeçalho de resposta "Location".
  • Se determinado tamanho de visualização não existir, a próxima visualização maior disponível será exibida. Se nenhuma visualização estiver associada ao item, um erro 404 (não encontrado) será retornado.
  • Há três maneiras de obter um link compartilhado para um item:
    • Faça uma solicitação GET para ITEM_ID/shared_read_link, em que ITEM_ID é o ID do item do OneDrive. Veja um exemplo.
      GET https://apis.live.net/v5.0/file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!131/shared_read_link?access_token=ACCESS_TOKEN
      
      
      Você pode encontrar o valor do link compartilhado na estrutura link do objeto de resposta em formato JSON.
    • Na interface do usuário do OneDrive, selecione o item e clique em Compartilhar. Clique em Obter um link e, ao lado de View only, clique em Create. O OneDrive exibirá o valor do link compartilhado, o qual você poderá usar em sua solicitação get_item_preview. O valor será parecido com o seguinte: https://onedrive.live.com/redir.aspx?cid=a6b2a7e8f2515e5e&resid=A6B2A7E8F2515E5E!132&parid=A6B2A7E8F2515E5E!110&authkey=!ACuMMo37Ju8_xw0x.
    • Na interface do usuário do OneDrive, selecione o item e clique em Compartilhar. Clique em Postar no Twitter, siga as instruções na tela e clique em Postar. A nova postagem do Twitter criada incluirá o valor do link compartilhado, o qual você poderá usar em sua solicitação get_item_preview. O valor será parecido com o seguinte: http://1drv.ms/LTIvcyx.
  • O valor do parâmetro de cadeia de caracteres de consulta url deverá ser codificado como uma URL. Por exemplo, use %3A para o caractere de dois-pontos (":"), %2F para o caractere de barra ("/"), %3F para o ponto de interrogação ("?") e %26 para o caractere do "e" comercial ("&").

Início

 

 

Mostrar:
© 2015 Microsoft