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.

Permissões

Uma das seguintes permissões é obrigatória para chamar esta API. Para saber mais, incluindo como escolher permissões, confira Permissões.

Tipo de permissão Permissões (da com menos para a com mais privilégios)
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 opcionais

Nome Tipo Descrição
Prefer cadeia de caracteres Opcional. Defina como um dos valores prefer 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 redeemSharingLink, mas o acesso só tem a garantia de ser concedido durante esta solicitação

redeemSharingLink deve ser considerado equivalente ao chamador navegando até o link de compartilhamento do navegador (aceitando o gesto de compartilhamento), enquanto redeemSharingLinkIfNecessary 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

Veja a seguir um exemplo da solicitação para recuperar um item compartilhado:

GET /shares/{shareIdOrEncodedSharingUrl}

Resposta

Veja a seguir um exemplo da 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 SharedDriveItem contenha algumas informações úteis, a maioria dos aplicativos acessará diretamente o DriveItem compartilhado. O recurso SharedDriveItem inclui root e relações 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 tópico Respostas de Erro para obter mais informações sobre como os erros são retornados.

Comentários

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