次の方法で共有


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

名前空間: microsoft.graph

createLink アクションを使用して、共有リンクを使って 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

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 作成する共有リンクの種類。 、viewedit、または embedのいずれか。
password string 作成者が設定する共有リンクのパスワード。 オプションと OneDrive Personal のみ。
expirationDateTime string DateTime の形式が yyyy-MM-ddTHH:mm:ssZ の文字列は、アクセス許可の有効期限を示します。
retainInheritedPermissions ブール値 省略可能。 (既定値) の場合 true 、このアイテムを初めて共有するときに、既存の継承されたアクセス許可が共有アイテムに保持されます。 の場合 false、共有時に既存のすべてのアクセス許可が初めて削除されます。
scope string 省略可能。 作成するリンクのスコープ。 、anonymousorganization、または usersのいずれか。

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

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

スコープの種類

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

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

応答

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

応答は、アイテムに新しい共有リンクが作成される場合は 201 Created、既存のリンクが返される場合は 200 OK となります。

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

要求

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 は、会社の共有可能リンクをサポートしています。 これらは匿名リンクに似ていますが、所有組織のメンバーだけが使用できる点が異なります。 会社の共有可能リンクを作成するには、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"
    },
  }
}

備考

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