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.

Essa API está disponível nas seguintes implantações nacionais de nuvem.

Serviço global Governo dos EUA L4 GOVERNO DOS EUA L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a permissão ou as permissões marcadas como menos privilegiadas para essa API. Use uma permissão ou permissões privilegiadas mais altas somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões privilegiadas mais altas
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 como um dos prefer valores documentados abaixo.

Preferir valores de cabeçalho

Nome Descrição
redeemSharingLink Se o shareIdOrEncodedSharingUrl for um link de compartilhamento, conceda ao chamador acesso durável ao item
redeemSharingLinkIfNecessary O mesmo que resgatarSharingLink, mas o acesso só é garantido para ser concedido durante a solicitação

o redeemSharingLink deve ser considerado equivalente ao chamador que navega até o link de compartilhamento do navegador (aceitando o gesto de compartilhamento), enquanto o resgateSharingLinkIfNecessary destina-se a cenários em que a intenção é simplesmente espiar os metadados do link.

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 a seguir mostra uma solicitação para recuperar um item compartilhado:

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 dos aplicativos deseja acessar diretamente o DriveItem compartilhado. O recurso SharedDriveItem inclui uma raiz e relações de itens que podem acessar o conteúdo no escopo do item compartilhado.

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 de Erro para obter mais informações sobre como os erros são retornados.

Comentários

  • Para OneDrive for Business e SharePoint, a API de Compartilhamentos sempre requer autenticação e não pode ser usada para acessar conteúdo compartilhado anonimamente sem um contexto de usuário.