Criar um link de compartilhamento para um DriveItem
Artigo
7 minutos para o fim da leitura
Namespace: microsoft.graph
Você pode usar a ação createLink para compartilhar um DriveItem por meio de um link de compartilhamento.
A ação createLink criará um novo link de compartilhamento se o tipo de link especificado não existir para o aplicativo de chamada. Se um link de compartilhamento do tipo especificado já existir para o aplicativo, o link de compartilhamento existente será retornado.
Recursos de DriveItem herdam permissões de compartilhamento de seus ancestrais.
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)
POST /drives/{driveId}/items/{itemId}/createLink
POST /groups/{groupId}/drive/items/{itemId}/createLink
POST /me/drive/items/{itemId}/createLink
POST /sites/{siteId}/drive/items/{itemId}/createLink
POST /users/{userId}/drive/items/{itemId}/createLink
Corpo da solicitação
O corpo da solicitação define as propriedades do link de compartilhamento que seu aplicativo está solicitando.
A solicitação deve ser um objeto JSON com as seguintes propriedades.
Nome
Tipo
Descrição
type
string
O tipo de link de compartilhamento a ser criado. Pode ser view, edit ou embed.
password
cadeia de caracteres
A senha do link de compartilhamento definido pelo criador. Opcional e OneDrive somente pessoal.
expirationDateTime
cadeia de caracteres
Uma cadeia de caracteres com formato de yyyy-MM-ddTHH:mm:ssZ de DateTime indica o tempo de expiração da permissão.
scope
string
Opcional. O escopo do link a ser criado. Pode ser anonymous ou organization.
Tipos de link
Os seguintes valores são permitidos para o parâmetro type.
Valor do tipo
Descrição
view
Cria um link somente leitura para DriveItem.
edit
Cria um link de leitura e gravação para DriveItem.
embed
Cria um link incorporado para DriveItem. Essa opção só está disponível para arquivos no OneDrive Pessoal.
Tipos de escopo
Os seguintes valores são permitidos para o parâmetro scope.
Se o parâmetro scope não for especificado, o tipo de link padrão será criado para a organização.
Valor
Descrição
anonymous
Qualquer pessoa com o link tem acesso, sem precisar fazer logon. Isso pode incluir pessoas de fora da organização. O suporte para links anônimos pode ser desativado por um administrador.
organization
Qualquer pessoa que tenha feito logon em sua organização (locatário) pode usar o link para obter acesso. Disponível apenas no OneDrive for Business e no SharePoint.
Resposta
Se for bem-sucedido, esse método retornará um único recurso Permission no corpo da resposta, que representa as permissões de compartilhamento solicitadas.
A resposta será 201 Created se um novo link de compartilhamento for criado para o item ou 200 OK se um link existente for retornado.
Exemplo
O exemplo a seguir solicita um link de compartilhamento que será criado para o DriveItem especificado por {itemId} no OneDrive do usuário.
O link de compartilhamento é configurado como somente leitura e utilizável por qualquer pessoa com o link.
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var type = "view";
var password = "ThisIsMyPrivatePassword";
var scope = "anonymous";
await graphClient.Me.Drive.Items["{driveItem-id}"]
.CreateLink(type,scope,null,password,null,null)
.Request()
.PostAsync();
O OneDrive for Business e o SharePoint oferecem suporte a links compartilháveis pela empresa.
Estes são semelhantes a links anônimos, com a diferença de que apenas funcionam para membros da organização proprietária.
Para criar um link compartilhável pela empresa, use o parâmetro scope com um valor de organization.
POST /me/drive/items/{item-id}/createLink
Content-Type: application/json
{
"type": "edit",
"scope": "organization"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var type = "edit";
var scope = "organization";
await graphClient.Me.Drive.Items["{driveItem-id}"]
.CreateLink(type,scope,null,null,null,null)
.Request()
.PostAsync();
Ao usar o tipo de link embed, a webUrl retornada pode ser inserida em um elemento HTML <iframe>. Quando um link de inserção é criado, a propriedade webHtml contém o código HTML de um <iframe> para hospedar o conteúdo.
Observação: os links de inseridos só tem suporte no OneDrive Pessoal.