ユーザーとのコンテンツの共有
ユーザーとのコンテンツの共有
コンテンツをユーザーと共有するには、ユーザーIDまたはメールアドレス、コンテンツのIDのほか、ユーザーがコンテンツにアクセスする際に必要なロールまたは権限を使用してコラボレーションを作成します。コラボレーションロールはeditor、viewer、previewer、uploader、previewer uploader、viewer uploader、co-owner、またはownerです。各ロールについての詳しい説明は、Boxのサポートドキュメントを参照してください。
cURL
curl -i -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": "user@example.com"
},
"role": "editor"
}'Node/TypeScript v10
await client.userCollaborations.createCollaboration({
item: {
type: 'folder' as CreateCollaborationRequestBodyItemTypeField,
id: folder.id,
} satisfies CreateCollaborationRequestBodyItemField,
accessibleBy: {
type: 'user' as CreateCollaborationRequestBodyAccessibleByTypeField,
id: user.id,
} satisfies CreateCollaborationRequestBodyAccessibleByField,
role: 'editor' as CreateCollaborationRequestBodyRoleField,
} satisfies CreateCollaborationRequestBody);Python v10
client.user_collaborations.create_collaboration(
CreateCollaborationItem(type=CreateCollaborationItemTypeField.FOLDER, id=folder.id),
CreateCollaborationAccessibleBy(
type=CreateCollaborationAccessibleByTypeField.USER, id=user.id
),
CreateCollaborationRole.EDITOR,
).NET v10
await client.UserCollaborations.CreateCollaborationAsync(requestBody: new CreateCollaborationRequestBody(item: new CreateCollaborationRequestBodyItemField() { Type = CreateCollaborationRequestBodyItemTypeField.Folder, Id = folder.Id }, accessibleBy: new CreateCollaborationRequestBodyAccessibleByField(type: CreateCollaborationRequestBodyAccessibleByTypeField.User) { Id = user.Id }, role: CreateCollaborationRequestBodyRoleField.Editor));Swift v10
try await client.userCollaborations.createCollaboration(requestBody: CreateCollaborationRequestBody(item: CreateCollaborationRequestBodyItemField(type: CreateCollaborationRequestBodyItemTypeField.folder, id: folder.id), accessibleBy: CreateCollaborationRequestBodyAccessibleByField(type: CreateCollaborationRequestBodyAccessibleByTypeField.user, id: user.id), role: CreateCollaborationRequestBodyRoleField.editor))Java v10
client.getUserCollaborations().createCollaboration(new CreateCollaborationRequestBody(new CreateCollaborationRequestBodyItemField.Builder().type(CreateCollaborationRequestBodyItemTypeField.FOLDER).id(folder.getId()).build(), new CreateCollaborationRequestBodyAccessibleByField.Builder(CreateCollaborationRequestBodyAccessibleByTypeField.USER).id(user.getId()).build(), CreateCollaborationRequestBodyRoleField.EDITOR)).NET v6
await client.UserCollaborations.CreateCollaborationAsync(requestBody: new CreateCollaborationRequestBody(item: new CreateCollaborationRequestBodyItemField() { Type = CreateCollaborationRequestBodyItemTypeField.Folder, Id = folder.Id }, accessibleBy: new CreateCollaborationRequestBodyAccessibleByField(type: CreateCollaborationRequestBodyAccessibleByTypeField.User) { Id = user.Id }, role: CreateCollaborationRequestBodyRoleField.Editor));Node v4
await client.userCollaborations.createCollaboration({
item: {
type: 'folder' as CreateCollaborationRequestBodyItemTypeField,
id: folder.id,
} satisfies CreateCollaborationRequestBodyItemField,
accessibleBy: {
type: 'user' as CreateCollaborationRequestBodyAccessibleByTypeField,
id: user.id,
} satisfies CreateCollaborationRequestBodyAccessibleByField,
role: 'editor' as CreateCollaborationRequestBodyRoleField,
} satisfies CreateCollaborationRequestBody);ネストされたオブジェクト
コラボレーションの作成時には、リクエスト本文にaccessible_byとitemという2つのネストされたオブジェクトを使用します。
accessible_byオブジェクトは、この項目の共有相手を指定し、グループidとtypeを含みます。typeフィールドは常にuserに設定する必要があります。
itemオブジェクトは、共有する項目を指定します。このオブジェクトには、fileとして設定する必要があるtypeフィールドと、そ のファイルのidフィールドがあります。