ファイルまたはフォルダに個々のユーザーまたはグループのコラボレーションを追加します。
コラボレーションは、メールアドレス、ユーザーID、またはグループIDを使用して作成できます。
グループを使用してコラボレーションを作成する場合、このエンドポイントにアクセスできるかどうかは、そのグループを招待できるかどうかによって決まります。
id,type,name
応答に含める属性のカンマ区切りリスト。このパラメータを使用すると、標準の応答には通常含まれないフィールドをリクエストできます。
このパラメータを指定すると、明示的に指定しない限り標準フィールドは応答に含まれず、リクエストしたフィールドのほかには、簡易版レプリゼンテーションのフィールドしか返されないことに注意してください。
true
実行されたアクションについてのメール通知をユーザーに送信するかどうかを決定します。
その項目に対するアクセス権限を付与するユーザーまたはグループ。
23522323
ユーザーまたはグループのID。
login
を使用してメールアドレスでユーザーを指定することもできます。
john@example.com
項目に対するアクセス権限を付与するユーザーのメールアドレス。
id
を使用してユーザーIDでユーザーを指定することもできます。
user
招待するコラボレータのタイプ。
次の値のいずれか1つ: user
,group
true
招待されたユーザーが招待に関連付けられているフォルダへの親パス全体を見ることができるかどうかを示します。招待されたユーザーには親フォルダ内の権限が付与されないため、自身が参加しているコラボレーションに関係しないコンテンツを閲覧することはできません。
これにより、招待されたユーザーの[すべてのファイル]ページの読み込みに必要な時間が有意に増加することに注意してください。can_view_path
が有効になっているコラボレーションの数を1ユーザーあたり1,000に制限することをお勧めします。
コメントを追加する項目。
11446498
アクセス権限が付与される項目のID
file
このコラボレーションでアクセス権限が付与される項目の種類
次の値のいずれか1つ: file
,folder
editor
付与されるアクセスレベル。
次の値のいずれか1つ: editor
,viewer
,previewer
,uploader
,previewer uploader
,viewer uploader
,co-owner
新しいコラボレーションオブジェクトを返します。
予期しないクライアントエラー。
curl -X POST https://api.box.com/2.0/collaborations \
-H 'Authorization: Bearer <ACCESS_TOKEN>" '
-H 'Content-Type: application/json" '
-d '{
"item": {
"type": "file",
"id": "11446498"
},
"accessible_by": {
"type": "user",
"login": "123456"
},
"role": "editor"
}'
// collaborate folder 11111 with user 22222
BoxCollaborationRequest requestParams = new BoxCollaborationRequest()
{
Item = new BoxRequestEntity()
{
Type = BoxType.Folder,
Id = "11111"
},
Role = "editor",
AccessibleBy = new BoxCollaborationUserRequest()
{
Id = "22222"
}
};
BoxCollaboration collab = await client.CollaborationsManager.AddCollaborationAsync(requestParams);
BoxCollaborator user = new BoxUser(api, "user-id")
BoxFolder folder = new BoxFolder(api, "folder-id");
folder.collaborate(user, BoxCollaboration.Role.EDITOR);
from boxsdk.object.collaboration import CollaborationRole
user = client.user(user_id='11111')
collaboration = client.folder(folder_id='22222').collaborate(user, CollaborationRole.VIEWER)
collaborator = collaboration.accessible_by
item = collaboration.item
has_accepted = 'has' if collaboration.status == 'accepted' else 'has not'
print('{0} {1} accepted the collaboration to folder "{2}"'.format(collaborator.name, has_accepted, item.name))
// Invite user 123456 to collaborate on folder 987654
client.collaborations.createWithUserID('123456', '987654', client.collaborationRoles.EDITOR)
.then(collaboration => {
/* collaboration -> {
type: 'collaboration',
id: '11111',
created_by:
{ type: 'user',
id: '22222',
name: 'Inviting User',
login: 'inviter@example.com' },
created_at: '2016-11-16T21:33:31-08:00',
modified_at: '2016-11-16T21:33:31-08:00',
expires_at: null,
status: 'accepted',
accessible_by:
{ type: 'user',
id: '123456',
name: 'Collaborator User',
login: 'collaborator@example.com' },
role: 'editor',
acknowledged_at: '2016-11-16T21:33:31-08:00',
item:
{ type: 'folder',
id: '987654',
sequence_id: '0',
etag: '0',
name: 'Collaborated Folder' } }
*/
});
client.collaborations.create(
itemType: "folder",
itemId: "22222",
role: .editor,
accessibleBy: "33333",
accessibleByType: "user"
) { (result: Result<Collaboration, BoxSDKError>) in
guard case let .success(collaboration) = result else {
print("Error creating collaboration")
return
}
print("Collaboration successfully created")
}