Crear un vínculo para compartir para un objeto DriveItem

Puede usar la acción createLink para compartir un DriveItem mediante un vínculo para compartir.

La acción createLink creará un nuevo vínculo para compartir si el tipo de vínculo especificado no existe para la aplicación que realiza la llamada. Si ya existe el tipo de vínculo para compartir especificado para la aplicación, se devolverá el vínculo para compartir existente.

Los recursos DriveItem heredan permisos de uso compartido de sus antecesores.

Permisos

Se requiere uno de los permisos siguientes para llamar a esta API. Para obtener más información, incluido cómo elegir permisos, vea Permisos.

Tipo de permiso Permisos (de menos a más privilegiados)
Delegado (cuenta profesional o educativa) Files.ReadWrite, Files.ReadWrite.All, Sites.ReadWrite.All
Delegado (cuenta personal de Microsoft) Files.ReadWrite, Files.ReadWrite.All
Aplicación Files.ReadWrite.All, Sites.ReadWrite.All

Solicitud HTTP

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

Cuerpo de solicitud

El cuerpo de la solicitud define las propiedades del vínculo para compartir que solicita su aplicación. La solicitud debe ser un objeto JSON con las siguientes propiedades.

Nombre Tipo Descripción
type cadena El tipo de vínculo para compartir que se creará. view, edit o embed.
ámbito string Opcional. El ámbito del vínculo que se creará. anonymous o organization.

Se pueden usar los siguientes valores para el parámetro de tipo.

Valor del tipo Descripción
view Crea un vínculo de solo lectura para el objeto DriveItem.
edit Crea un vínculo de lectura y escritura para el objeto DriveItem.
embed Crea un vínculo insertable para el objeto DriveItem. Esta opción solo está disponible para archivos en OneDrive Personal.

Tipos de ámbitos

Se permiten los siguientes valores para el parámetro scope. Si el parámetro scope no se especifica, se crea el tipo de vínculo predeterminado para la organización.

Valor Descripción
anonymous Cualquier persona con el vínculo tiene acceso, sin necesidad de iniciar sesión. Se incluyen personas de fuera de su organización. Un administrador puede deshabilitar la compatibilidad con vínculos anónimos.
organization Cualquier persona que haya iniciado sesión en su organización (espacio empresarial) podrá usar el vínculo para obtener acceso. Disponible solo en OneDrive para la Empresa y en SharePoint.

Respuesta

Si se ejecuta correctamente, este método devuelve un recurso Permission único en el cuerpo de la respuesta que representa los permiso de uso compartido solicitados.

La respuesta será 201 Created si se crea un nuevo vínculo para compartir el elemento o 200 OK si se devuelve un vínculo existente.

Ejemplo

En el ejemplo siguiente, se solicita un vínculo para compartir que se creará para el objeto DriveItem especificado por {itemId} en el OneDrive del usuario. El vínculo para compartir está configurado para que sea de solo lectura y lo pueda usar cualquier usuario que tenga el vínculo.

Solicitud

POST /me/drive/items/{item-id}/createLink
Content-type: application/json

{
  "type": "view",
  "scope": "anonymous"
}

Respuesta

HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": "123ABC",
  "roles": ["write"],
  "link": {
    "type": "view",
    "scope": "anonymous",
    "webUrl": "https://1drv.ms/A6913278E564460AA616C71B28AD6EB6",
    "application": {
      "id": "1234",
      "displayName": "Sample Application"
    },
  }
}

OneDrive para la Empresa y SharePoint admiten vínculos de empresa para compartir. Son similares a los vínculos anónimos, pero solo funcionan para los miembros de la organización propietaria. Para crear un vínculo de empresa para compartir, utilice el parámetro de ámbito con un valor de organization.

Solicitud

POST /me/drive/items/{item-id}/createLink
Content-Type: application/json

{
  "type": "edit",
  "scope": "organization"
}

Respuesta

HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": "123ABC",
  "roles": ["write"],
  "link": {
    "type": "edit",
    "scope": "organization",
    "webUrl": "https://contoso-my.sharepoint.com/personal/ellen_contoso_com/...",
    "application": {
      "id": "1234",
      "displayName": "Sample Application"
    },
  }
}

Cuando se utiliza el tipo de vínculo embed, la webUrl que se devuelve se puede insertar en un elemento HTML <iframe>. Cuando se crea un vínculo para insertar, la propiedad webHtml contiene el código HTML de un <iframe> para hospedar el contenido.

Nota: La acción de insertar vínculos solo se admite en OneDrive Personal.

Solicitud

POST /me/drive/items/{item-id}/createLink
Content-Type: application/json

{
  "type": "embed"
}

Respuesta

HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": "123ABC",
  "roles": ["read"],
  "link": {
    "type": "embed",
    "webHtml": "<IFRAME src=\"https://onedrive.live.com/...\"></IFRAME>",
    "webUrl": "https://onedive.live.com/...",
    "application": {
      "id": "1234",
      "displayName": "Sample Application"
    },
  }
}

Comentarios

  • Los vínculos creados con esta acción no caducan a menos que la organización fuerce una política de caducidad de forma predeterminada.
  • Los vínculos se pueden ver en los permisos de uso compartido del elemento y los puede eliminar un propietario del elemento.
  • Los vínculos siempre señalan la versión actual de un elemento, a menos que el elemento esté desprotegido (solo en SharePoint).