DriveItem の共有リンクを作成する

名前空間: microsoft.graph

driveItem driveItem を共有するリンクを作成します。

createLink アクションは、呼び出し元のアプリケーションに指定されたリンクの種類がまだ存在しない場合に、新しい共有リンクを作成します。 指定した種類の共有リンクがアプリに既に存在する場合は、既存の共有リンクが返されます。

DriveItem リソースは、そのリソースの先祖から共有アクセス許可を継承します。

この API は、次の国内クラウド展開で使用できます。

グローバル サービス 米国政府機関 L4 米国政府機関 L5 (DOD) 21Vianet が運営する中国
✅ ✅ ✅ ✅

アクセス許可

この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。 アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。

アクセス許可の種類 最小特権アクセス許可 より高い特権のアクセス許可
委任 (職場または学校のアカウント) Files.ReadWrite Files.ReadWrite.All、Sites.ReadWrite.All
委任 (個人用 Microsoft アカウント) Files.ReadWrite Files.ReadWrite.All
アプリケーション Files.ReadWrite.All Sites.ReadWrite.All

注:

SharePoint Embedded には、コンテナーのコンテンツにアクセスするための FileStorageContainer.Selected アクセス許可が必要です。 このアクセス許可は、前に説明した権限とは異なります。 Microsoft Graph のアクセス許可に加えて、アプリには、この API を呼び出すために必要な コンテナーの種類のアクセス許可 が必要です。 詳細については、「 SharePoint Embedded の認証と承認」を参照してください。

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

要求ヘッダー

名前 説明
Authorization ベアラー {token}。 必須です。 認証と認可についての詳細をご覧ください。
Content-Type application/json. 必須です。

要求本文

要求本文はアプリケーションが要求する共有リンクのプロパティを定義します。 要求は、次のプロパティを含む JSON オブジェクトである必要があります。

名前 型 説明
type string 作成する共有リンクの種類。 view、edit、またはembedのいずれか。
password string 作成者が設定した共有リンクのパスワード。 オプションと OneDrive Personal のみ。
expirationDateTime string DateTime の形式が yyyy-MM-ddTHH:mm:ssZ の文字列は、アクセス許可の有効期限を示します。
retainInheritedPermissions ブール値 省略可能。 true (既定値) の場合、このアイテムを初めて共有するときに、既存の継承されたアクセス許可が共有アイテムに保持されます。 false場合、共有時に既存のすべてのアクセス許可が初めて削除されます。 SharePoint Embedded ではサポートされていません。
scope string 省略可能。 作成するリンクのスコープ。 anonymous、organization、またはusersのいずれか。

type パラメーターには次の値を使用できます。

種類の値 説明
view その DriveItem への読み取り専用リンクを作成します。
edit その DriveItem への読み取り/書き込みリンクを作成します。
embed その DriveItem への埋め込み可能なリンクを作成します。 このオプションは OneDrive 個人用のファイルでのみ選択可能です。

スコープの種類

scope パラメーターには次の値を使用できます。 scope パラメーターが指定されていない場合は、organizationの既定のリンクの種類が作成されます。

値 説明
anonymous リンクを知っているすべてのユーザーは、サインインするこなくアクセスできます。 organization外のユーザーが含まれる場合があります。 匿名リンクのサポートは、管理者により無効にされることがあります。
organization 組織 (テナント) にサインインしているユーザーは、リンクを使用してアクセスできます。 OneDrive for Business および SharePoint の場合のみ使用できます。
users organization内または外部で選択したユーザーとだけ共有します。

応答

正常に実行されると、このメソッドは要求された共有アクセス許可を表す応答本文で、単一のアクセス許可リソースを返します。

項目に対して新しい共有リンクが作成された場合、または既存のリンクが返された場合は200 OK応答が201 Createdされます。

例

次の例では、ユーザーの OneDrive で {item-id} によって指定された DriveItem の共有リンクを作成するように要求します。 共有リンクは、読み取り専用でそのリンクによってだれでも使用可能になるよう構成されます。 retainInheritedPermissionsが false の場合、共有を初めて行うと、既存のすべてのアクセス許可が削除されます。

要求

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

{
  "type": "view",
  "password": "ThisIsMyPrivatePassword",
  "scope": "anonymous",
  "retainInheritedPermissions": false
}

応答

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
}

OneDrive for Business および SharePoint は、会社の共有可能リンクをサポートしています。 これらは匿名リンクに似ていますが、所有するorganizationのメンバーに対してのみ機能します。 会社の共有可能リンクを作成するには、scope パラメーターで値 organization を指定して使用します。

要求

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

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

応答

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

リンクの種類で embed を使用する場合、返される webUrl は <iframe> HTML 要素に埋め込むことができます。 埋め込みリンクが作成されると、webHtml プロパティに <iframe> がコンテンツをホストするための HTML コードが含まれます。

注: 埋め込みリンクは、OneDrive 個人用でのみサポートされます。

要求

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

{
  "type": "embed"
}

応答

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://onedrive.live.com/...",
    "application": {
      "id": "1234",
      "displayName": "Sample Application"
    },
  }
}

注釈

  • このアクションを使用して作成されたリンクは、organizationに既定の有効期限ポリシーが適用されない限り有効期限が切れません。
  • リンクはそのアイテムの共有アクセス許可に表示され、アイテムの所有者はそれを削除できます。
  • リンクは、そのアイテムがチェックアウトされない限り、常にアイテムの現在のバージョンをポイントします (SharePoint の場合のみ)。