Compartilhar via


Acessar DriveItems compartilhados

Namespace: microsoft.graph

Acesse um DriveItem compartilhado ou uma coleção de itens compartilhados usando um shareId ou uma URL de compartilhamento.

Para usar uma URL de compartilhamento com esta API, seu aplicativo precisa transformar a URL em um token de compartilhamento.

Esta API está disponível nas seguintes implementações de cloud nacionais.

Serviço global US Government L4 US Government L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.

Tipo de permissão Permissões com menos privilégios Permissões com privilégios superiores
Delegado (conta corporativa ou de estudante) Files.ReadWrite Files.ReadWrite.All, Sites.ReadWrite.All
Delegado (conta pessoal da Microsoft) Files.ReadWrite Files.ReadWrite.All
Aplicativo Files.ReadWrite.All Sites.ReadWrite.All

Solicitação HTTP

GET /shares/{shareIdOrEncodedSharingUrl}

Parâmetros do caminho

Nome do Parâmetro Valor Descrição
shareIdOrEncodedSharingUrl string Obrigatório. Um token de compartilhamento retornado pela API ou uma URL de compartilhamento corretamente codificada.

Codificação de URLs de compartilhamento

Para codificar uma URL de compartilhamento, use a seguinte lógica:

  1. Primeiro, use base64 para codificar a URL.
  2. Converta o resultado codificado na base64 para o formato base64url sem preenchimento removendo caracteres = do final do valor, substituindo / por _ e + por -.)
  3. Acrescente u! ao início da cadeia de caracteres.

Por exemplo, para codificar uma URL em C#:

string sharingUrl = "https://onedrive.live.com/redir?resid=1231244193912!12&authKey=1201919!12921!1";
string base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sharingUrl));
string encodedUrl = "u!" + base64Value.TrimEnd('=').Replace('/','_').Replace('+','-');

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type application/json. Obrigatório.
Preferir Opcional. Cadeia de caracteres. Defina para um dos prefer valores documentados abaixo.

Preferir valores de cabeçalho

Nome Descrição
redeemSharingLink Se shareIdOrEncodedSharingUrl for uma ligação de partilha, conceda ao autor da chamada acesso duradouro ao item
redeemSharingLinkIfNecessary O mesmo que redeemSharingLink, mas só é garantido que o acesso seja concedido durante este pedido

redeemSharingLink deve ser considerado equivalente ao autor da chamada que navega para a ligação de partilha do browser (aceitando o gesto de partilha), enquanto redeemSharingLinkIfNecessary destina-se a cenários em que a intenção é simplesmente espreitar os metadados da ligação.

Resposta

Se bem-sucedido, este método retorna o código de resposta 200 OK e o recurso sharedDriveItem no corpo da resposta.

Exemplo

Solicitação

O exemplo seguinte mostra um pedido para obter um item partilhado:

GET /shares/{shareIdOrEncodedSharingUrl}

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 200 OK
Content-type: application/json

{
  "id": "B64397C8-07AE-43E4-920E-32BFB4331A5B",
  "name": "contoso project.docx",
  "owner": {
    "user": {
      "id": "98E88F1C-F8DC-47CC-A406-C090248B30E5",
      "displayName": "Ryan Gregg"
    }
  }
}

Acessar diretamente o item compartilhado

Embora o SharedDriveItem contenha algumas informações úteis, a maioria das aplicações quer aceder diretamente ao DriveItem partilhado. O recurso SharedDriveItem inclui relações de raiz e itens que podem aceder ao conteúdo no âmbito do item partilhado.

Exemplo (arquivo único)

Solicitação

Ao solicitar a relação driveItem, o DriveItem compartilhado será retornado.

GET /shares/{shareIdOrUrl}/driveItem

Resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "9FFFDB3C-5B87-4062-9606-1B008CA88E44",
  "name": "contoso project.docx",
  "eTag": "2246BD2D-7811-4660-BD0F-1CF36133677B,1",
  "file": {},
  "size": 109112
}

Exemplo (pasta compartilhada)

Solicitação

Solicitando a relação driveItem e expandindo a coleção children, o DriveItem que foi compartilhado será retornado junto com os arquivos da pasta compartilhada.

GET /shares/{shareIdOrUrl}/driveItem?$expand=children

Resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "9FFFDB3C-5B87-4062-9606-1B008CA88E44",
  "name": "Contoso Project",
  "eTag": "2246BD2D-7811-4660-BD0F-1CF36133677B,1",
  "folder": {},
  "size": 10911212,
  "children": [
    {
      "id": "AFBBDD79-868E-452D-AD4D-24697D4A4044",
      "name": "Propsoal.docx",
      "file": {},
      "size": 19001
    },
    {
      "id": "A91FE90A-2F2C-4EE6-B412-C4FFBA3F71A6",
      "name": "Update to Proposal.docx",
      "file": {},
      "size": 91001
    }
  ]
}

Respostas de erro

Leia o artigo Respostas a Erros para obter mais informações sobre como os erros são devolvidos.

Comentários

  • Para OneDrive for Business e SharePoint, a API Partilhas requer sempre autenticação e não pode ser utilizada para aceder a conteúdos partilhados anonimamente sem um contexto de utilizador.