アクセス許可: grant
-
[アーティクル]
-
-
名前空間: microsoft.graph
アクセス許可によって表されるリンクへのアクセス権をユーザーに付与 [します][]。
アクセス許可
この API を呼び出すには、次のいずれかのアクセス許可が必要です。アクセス許可の選択方法などの詳細については、「アクセス許可」を参照してください。
| アクセス許可の種類 |
アクセス許可 (特権の小さいものから大きいものへ) |
| 委任 (職場または学校のアカウント) |
Files.ReadWrite、Files.ReadWrite.All、Sites.ReadWrite.All |
| 委任 (個人用 Microsoft アカウント) |
サポートされていません |
| アプリケーション |
Files.ReadWrite.All、Sites.ReadWrite.All |
HTTP 要求
POST /shares/{encoded-sharing-url}/permission/grant
| 名前 |
説明 |
| Authorization |
ベアラー {トークン}。必須。 |
要求本文
要求本文で、次のパラメーターを含む JSON オブジェクトを指定します。
{
"recipients": [
{ "@odata.type": "microsoft.graph.driveRecipient" }
],
"roles": [ "read | write"]
}
| パラメーター |
種類 |
説明 |
| Recipients |
Collection(driveRecipient) |
アクセスを受け取る受信者のコレクション。 |
| roles |
Collection(String) |
リンクが "既存のアクセス" リンクである場合は、ユーザーに付与する役割を指定します。 それ以外の場合は、リンクの役割と一致する必要があります。 |
使用可能な役割の一覧については、「 roles プロパティの値」を参照してください。
応答
成功した場合、このメソッドは応答コード 200 OK と応答本文 [のアクセス許可][] コレクションを返します。
更新 [されたリンク][] を表すアクセス許可は、成功すると常に結果セットに返されます。 更新されたリンクは、'scope' プロパティを含む 'link' ファセットが存在することで識別できます。 場合によっては、更新されたリンクの URL が元のリンクとは異なる場合があります。この場合、新しい URL を使用する必要があります。
エラーがどのように返されるかについては、「エラー応答」のトピックを参照してください。
例
この例では、リンク john@contoso.com 既存 ryan@external.com 変更せずに、共有リンクへのアクセス権をユーザーに付与します。
要求
POST https://graph.microsoft.com/v1.0/shares/{encoded-sharing-url}/permission/grant
Content-type: application/json
{
"recipients": [
{
"email": "john@contoso.com"
},
{
"email": "ryan@external.com"
}
],
"roles": ["read"]
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var recipients = new List<DriveRecipient>()
{
new DriveRecipient
{
Email = "john@contoso.com"
},
new DriveRecipient
{
Email = "ryan@external.com"
}
};
var roles = new List<String>()
{
"read"
};
await graphClient.Shares["{sharedDriveItem-id}"].Permission
.Grant(roles,recipients)
.Request()
.PostAsync();
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
const permission = {
recipients: [
{
email: 'john@contoso.com'
},
{
email: 'ryan@external.com'
}
],
roles: ['read']
};
await client.api('/shares/{encoded-sharing-url}/permission/grant')
.post(permission);
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/shares/{encoded-sharing-url}/permission/grant"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSMutableDictionary *payloadDictionary = [[NSMutableDictionary alloc] init];
NSMutableArray *recipientsList = [[NSMutableArray alloc] init];
MSGraphDriveRecipient *recipients = [[MSGraphDriveRecipient alloc] init];
[recipients setEmail:@"john@contoso.com"];
[recipientsList addObject: recipients];
MSGraphDriveRecipient *recipients = [[MSGraphDriveRecipient alloc] init];
[recipients setEmail:@"ryan@external.com"];
[recipientsList addObject: recipients];
payloadDictionary[@"recipients"] = recipientsList;
NSMutableArray *rolesList = [[NSMutableArray alloc] init];
[rolesList addObject: @"read"];
payloadDictionary[@"roles"] = rolesList;
NSData *data = [NSJSONSerialization dataWithJSONObject:payloadDictionary options:kNilOptions error:&error];
[urlRequest setHTTPBody:data];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
LinkedList<DriveRecipient> recipientsList = new LinkedList<DriveRecipient>();
DriveRecipient recipients = new DriveRecipient();
recipients.email = "john@contoso.com";
recipientsList.add(recipients);
DriveRecipient recipients1 = new DriveRecipient();
recipients1.email = "ryan@external.com";
recipientsList.add(recipients1);
LinkedList<String> rolesList = new LinkedList<String>();
rolesList.add("read");
graphClient.shares("{encoded-sharing-url}").permission()
.grant(PermissionGrantParameterSet
.newBuilder()
.withRoles(rolesList)
.withRecipients(recipientsList)
.build())
.buildRequest()
.post();
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.New()
requestBody.SetRecipients( []DriveRecipient {
msgraphsdk.NewDriveRecipient(),
email := "john@contoso.com"
SetEmail(&email)
msgraphsdk.NewDriveRecipient(),
email := "ryan@external.com"
SetEmail(&email)
}
requestBody.SetRoles( []String {
"read",
}
sharedDriveItemId := "sharedDriveItem-id"
result, err := graphClient.SharesById(&sharedDriveItemId).Permission().Grant(sharedDriveItem-id).Post(requestBody)
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
Import-Module Microsoft.Graph.Files
$params = @{
Recipients = @(
@{
Email = "john@contoso.com"
}
@{
Email = "ryan@external.com"
}
)
Roles = @(
"read"
)
}
Grant-MgSharePermission -SharedDriveItemId $sharedDriveItemId -BodyParameter $params
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
応答
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"hasPassword": false,
"id": "5fab944a-47ec-48d0-a9b5-5178a926d00f",
"link": {
"preventsDownload": false,
"scope": "users",
"type": "view",
"webUrl": "https://contoso.sharepoint.com/:t:/g/design/EZexPoDjW4dMtKFUfAl6BK4BvIUuss52hLYzihBfx-PD6Q"
},
"roles": [
"read"
]
}
]
}
注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。
リンクが既存のアクセス リンクの 場合、次の表に示す追加のアクセス許可が返されます。
- アクセスが正常に許可された受信者を表すユーザー型のアクセス許可。 これらは、grantedTo プロパティの存在 によって識別 できます。
- アクセス権を得るために認識されていない外部ユーザーに送信する必要がある招待状を表すリンク型のアクセス許可。 これらは、招待ファセットが存在することで 識別 できます。 これらのエントリには招待 URL とのリンクが含まれるので、grantedToIdentities コレクションはリンクの送信先ユーザーを示します。
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"hasPassword": false,
"id": "00000000-0000-0000-0000-000000000000",
"link": {
"preventsDownload": false,
"scope": "existingAccess",
"type": "view",
"webUrl": "https://contoso.sharepoint.com/teams/design/shareddocs/Document.docx"
},
"roles": [
"read"
]
},
{
"grantedTo": {
"user": {
"displayName": "John Smith",
"email": "john@contoso.com",
"id": "47aecee2-d061-4730-8ecb-4c61360441ae"
}
},
"id": "aTowIy5mfG1lbWJlcnNoaXB8bGltaXRlZDJAa2xhbW9kYi5vbm1pY3Jvc29mdC5jb20",
"roles": [
"read"
]
},
{
"grantedToIdentities": [
{
"user": {
"email": "ryan@external.com"
}
}
],
"invitation": {
"signInRequired": true
},
"roles": [
"read"
],
"link": {
"type": "view",
"webUrl": "https://contoso.sharepoint.com/:t:/g/teams/design/EZexPoDjW4dMtKFUfAl6BK4Bw_F7gFH63O310A7lDtK0mQ"
}
}
]
}
注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。