共有 DriveItems へのアクセス
shareId または共有の URL を使用して、共有 DriveItem または共有アイテムのコレクションにアクセスします。
この API で共有の URL を使用するには、アプリで URL を共有のトークンに変換する必要があります。
アクセス許可
この API を呼び出すには、次のいずれかのアクセス許可が必要です。 アクセス許可の選択方法などの詳細については、「アクセス許可」を参照してください。
アクセス許可の種類 | アクセス許可 (特権の小さいものから大きいものへ) |
---|---|
委任 (職場または学校のアカウント) | Files.ReadWrite、Files.ReadWrite.All、Sites.ReadWrite.All |
委任 (個人用 Microsoft アカウント) | Files.ReadWrite、Files.ReadWrite.All |
アプリケーション | Files.ReadWrite.All、Sites.ReadWrite.All |
HTTP 要求
GET /shares/{shareIdOrEncodedSharingUrl}
パス パラメーター
パラメーター名 | 値 | 説明 |
---|---|---|
sharingTokenOrUrl | string |
必須。 API によって返される共有トークン、または適切にエンコードされた共有 URL。 |
共有 URL をエンコードする
共有 URL をエンコードするには、次のロジックを使用します。
- まず、base64 を使用して URL をエンコードします。
- base64 でエンコードされた結果を unpadded base64url 形式に変換します (値の末尾から
=
文字を削除し、/
を_
、+
を-
に置き換える)。 - 文字列の先頭に
u!
を追加します。
C# で URL をエンコードする例を以下に示します。
string sharingUrl = "https://onedrive.live.com/redir?resid=1231244193912!12&authKey=1201919!12921!1";
string base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sharingUrl));
string encodedUrl = "u!" + base64Value.TrimEnd('=').Replace('/','_').Replace('+','-');
応答
成功した場合、このメソッドは 200 OK
応答コードと、応答本文で sharedDriveItem リソースを返します。
例
要求
以下は、共有アイテムを取得する要求の例です。
GET /shares/{shareIdOrEncodedSharingUrl}
応答
以下は、応答の例です。
HTTP/1.1 200 OK
Content-type: application/json
{
"id": "B64397C8-07AE-43E4-920E-32BFB4331A5B",
"name": "contoso project.docx",
"owner": {
"user": {
"id": "98E88F1C-F8DC-47CC-A406-C090248B30E5",
"displayName": "Ryan Gregg"
}
}
}
共有アイテムに直接アクセスする
SharedDriveItem には便利な情報がいくつか含まれていますが、ほとんどのアプリでは共有 DriveItem に直接アクセスする必要があります。 SharedDriveItem リソースには、共有アイテムのスコープ内のコンテンツにアクセスできるルートとアイテムのリレーションシップが含まれています。
例 (単一ファイル)
要求
driveItem リレーションシップを要求することで、共有されている DriveItem が返されます。
GET /shares/{shareIdOrUrl}/driveItem
応答
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "9FFFDB3C-5B87-4062-9606-1B008CA88E44",
"name": "contoso project.docx",
"eTag": "2246BD2D-7811-4660-BD0F-1CF36133677B,1",
"file": {},
"size": 109112
}
例 (共有フォルダー)
要求
driveItem リレーションシップを要求して、children コレクションを展開することで、共有されている DriveItem が共有フォルダー内のファイルとともに返されます。
GET /shares/{shareIdOrUrl}/driveItem?$expand=children
応答
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "9FFFDB3C-5B87-4062-9606-1B008CA88E44",
"name": "Contoso Project",
"eTag": "2246BD2D-7811-4660-BD0F-1CF36133677B,1",
"folder": {},
"size": 10911212,
"children": [
{
"id": "AFBBDD79-868E-452D-AD4D-24697D4A4044",
"name": "Propsoal.docx",
"file": {},
"size": 19001
},
{
"id": "A91FE90A-2F2C-4EE6-B412-C4FFBA3F71A6",
"name": "Update to Proposal.docx",
"file": {},
"size": 91001
}
]
}
エラー応答
エラーがどのような形で返されるかについては、「エラー応答」を参照してください。
備考
- OneDrive for Business と SharePoint の場合、Shares API には常に認証が必要です。また、ユーザー コンテキストを使用せずに、匿名で共有コンテンツにアクセスするためには使用できません。