Skip to content

Latest commit

 

History

History
375 lines (290 loc) · 15.4 KB

driveitem-createlink.md

File metadata and controls

375 lines (290 loc) · 15.4 KB
author description title ms.localizationpriority ms.subservice doc_type
spgraph-docs-team
Create a link to share a driveItem.
driveItem: createLink
medium
sharepoint
apiPageType

driveItem: createLink

Namespace: microsoft.graph

[!INCLUDE beta-disclaimer]

Create a link to share a driveItem driveItem. The createLink action creates a new sharing link if the specified link type doesn't already exist for the calling application. If a sharing link of the specified type already exists for the app, the existing sharing link is returned.

DriveItem resources inherit sharing permissions from their ancestors.

[!INCLUDE national-cloud-support]

Permissions

Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.

[!INCLUDE permissions-table]

HTTP request

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

Request headers

Name Description
Authorization Bearer {token}. Required. Learn more about authentication and authorization.
Content-Type application/json. Required.

Request body

The body of the request defines properties of the sharing link your application is requesting. The request should be a JSON object with the following properties.

Property Type Description
type String Optional. The type of sharing link to create.
scope String Optional. The scope of link to create. Either anonymous, organization, or users
expirationDateTime DateTimeOffset Optional. A String with format of yyyy-MM-ddTHH:mm:ssZ of DateTime indicates the expiration time of the permission.
password String Optional. The creator sets the password for the sharing link.
recipients driveRecipient collection Optional. A collection of recipients who receive access to the sharing link.
retainInheritedPermissions Boolean Optional. If true (default), any existing inherited permissions are retained on the shared item when sharing this item for the first time. If false, all existing permissions are removed when sharing for the first time.
sendNotification Boolean If true, this method sends a sharing link in an email to users specified in recipients. Applicable to OneDrive for Business or SharePoint. The default value is false. Optional.

Link types

The following values are allowed for the type parameter.

Type value Description
view Creates a read-only link to the driveItem.
review Creates a review link to the driveItem. This option is only available for files in OneDrive for Business and SharePoint.
edit Creates a read-write link to the driveItem.
embed Creates an embeddable link to the driveItem.
blocksDownload Creates a read-only link that blocks download to the driveItem. This option is only available for files in OneDrive for Business and SharePoint.
createOnly Creates an upload-only link to the driveItem. This option is only available for folders in OneDrive for Business and SharePoint.
addressBar Creates the default link that is shown in the browser address bars for newly created files. Only available in OneDrive for Business and SharePoint. The organization admin configures whether this link type supports and specifies what features it supports.
adminDefault Creates the default link to the driveItem as determined by the administrator of the organization. Only available in OneDrive for Business and SharePoint. The admin enforces the policy for the organization.

Scope types

The following values are allowed for the scope parameter.

Value Description
anonymous Anyone with the link has access, without needing to sign in. It may include people outside of your organization. An administrator may disable support for anonymous links.
organization Anyone signed into your organization (tenant) can use the link to get access. Only available in OneDrive for Business and SharePoint.
users Specific people in the recipient's collection can use the link to get access. Only available in OneDrive for Business and SharePoint.

Response

If successful, this method returns a single Permission resource in the response body that represents the requested sharing permissions.

The response is 201 Created if a new sharing link is created for the driveItem or 200 OK if an existing link is returned.

Examples

Example 1: Create an anonymous sharing link

The following example requests a sharing link to be created for the driveItem specified by {itemId} in the user's OneDrive. The sharing link is configured to be read-only and usable by anyone with the link. For OneDrive for Business and SharePoint users, use the sendNotification parameter to create a sharing link. The sharing link is then sent to recipients via email. All existing permissions are removed when sharing for the first time if retainInheritedPermissions is false.

Request

POST https://graph.microsoft.com/beta/me/drive/items/{itemId}/createLink
Content-Type: application/json

{
  "type": "view",
  "scope": "anonymous",
  "password": "String",
  "recipients": [
    {
      "@odata.type": "microsoft.graph.driveRecipient"
    }
  ],
  "sendNotification": true,
  "retainInheritedPermissions": false
}

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]


Response

Note: The response object shown here might be shortened for readability.

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"
    },
  },
  "hasPassword": true
}

Example 2: Creating company sharable links

OneDrive for Business and SharePoint support company sharable links. They're similar to anonymous links, except they only work for members of the owning organization. To create a company sharable link, use the scope parameter with a value of organization.

Request

POST https://graph.microsoft.com/beta/me/drive/items/{item-id}/createLink
Content-Type: application/json

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

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]


Response

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"
    },
  }
}

Example 3: Creating embeddable links

When using the embed link type, the webUrl returned can be embedded in an <iframe> HTML element. When an embed link is created, the webHtml property contains the HTML code for an <iframe> to host the content.

Note: Embed links are only supported for OneDrive personal.

Request

The following example shows a request.

POST https://graph.microsoft.com/beta/me/drive/items/{item-id}/createLink
Content-Type: application/json

{
  "type": "embed"
}

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]


Response

The following example shows the request.

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"
    },
  }
}

Remarks

  • To create a link based on the organization's default policy and the caller's permissions on the driveItem, omit the scope and type parameters.
  • Links created using this action don't expire unless a default expiration policy is enforced for the organization.
  • Links are visible in the sharing permissions for the driveItem and can be removed by an owner of the driveItem.
  • Links always point to the current version of a driveItem unless the driveItem is checked out (SharePoint only).