Box Developerドキュメントの新しいベータ版サイトがまもなくリリースされる予定です。最新の開発者向けガイド、APIリファレンス、AI搭載の検索により、Boxを使用した迅速な開発をサポートします。更新情報については今しばらくお待ちください。
SQLに似た構文で特定のメタデータと一致する項目を返す検索を作成します。
デフォルトでは、このエンドポイントによって、クエリに一致する項目に関する最も基本的な情報のみが返されます。各項目のその他のフィールド (メタデータのいずれかを含む) を取得するには、クエリでfields属性を使用します。
"0"クエリを制限しているフォルダのID。値が0の場合は、アクセスできるすべてのフォルダから結果が返されます。値が0以外の場合は、IDに対応するフォルダまたはそのサブフォルダで見つかった結果のみが返されます。
["extension","created_at","item_status","metadata.enterprise_1234.contracts","metadata.enterprise_1234.regions.location"]デフォルトでは、このエンドポイントによって、クエリに一致する項目に関する最も基本的な情報のみが返されます。この属性を使用すると、任意の項目に対して返す追加の属性 (メタデータなど) のリストを指定できます。
この属性は、項目フィールド、メタデータテンプレート識別子、またはメタデータテンプレートフィールド識別子のリストを取得します。
例:
created_byでは、項目を作成したユーザーの詳細がレスポンスに追加されます。metadata.<scope>.<templateKey>では、scopeとtemplateKeyによって識別されたメタデータインスタンスのMini版の表示が返されます。metadata.<scope>.<templateKey>.<field>では、scopeとtemplateKeyによって識別されたメタデータインスタンスのMini版の表示に加え、field名で指定されたフィールドがすべて返されます。同じscopeおよびtemplateKeyの複数のフィールドを定義できます。"enterprise_123456.someTemplate"クエリで使 用されるテンプレートを指定します。scope.templateKey形式にする必要があります。このフィールドですべてのテンプレートを使用できるとは限りません。最も注目すべきは、Boxが提供する組み込みの分類テンプレートはクエリで使用できないことです。
501000100単一のリクエストに対して返す結果の最大数を示す0~100の値。これは、上限を示すだけで、返される結果の最小数を保証しません。
"AAAAAmVYB1FWec8GH6yWu2nwmanfMh07IyYInaa7DZDYjgO1H4KoLW29vPlLY173OKsci6h6xGh61gG73gnaxoS+o0BbI1/h6le6cikjlupVhASwJ2Cj0tOD9wlnrUMHHw3/ISf+uuACzrOMhN6d5fYrbidPzS6MdhJOejuYlvsg4tcBYzjauP3+VU51p77HFAIuObnJT0ff"次ページをリクエストするために使用するマーカー。
メタデータクエリの結果の並べ替えに使用するテンプレートフィールドと方向のリスト。
並べ替えのdirectionは、配列内の各項目で同じにする必要があります。
"asc"並べ替えの方向 (昇順または降順)。
orderingの方向は、配列内の各項目で同じにする必要があります。
次の値のいずれか1つ: ASC,DESC,asc,desc
"amount"並べ替えに使用するメタデータテンプレートフィールド。
field_keyは、検索対象のメタデータテンプレートのフィールドのkey値を表します。
"value >= :amount"実行するクエリ。クエリは、SQLのSELECTステートメントによく似た論理式です。検索クエリの値は、query_param引数リストで指定されたパラメータに変 換できるため、クエリ文字列に検索値を手動で挿入する必要がなくなります。
たとえば、:amountという値は、query_paramsオブジェクトのamount値を表します。
queryで指定されたパラメータに対応する引数のセット。query_paramsで使用されている各パラメータのタイプは、対応するメタデータテンプレートフィールドのタイプと一致する必要があります。
"100"メタデータ検索で使用されている引数の値。
このパラメータのタイプは、対応するメタデータテンプレートフィールドのタイプと一致する必要があります。
このメタデータクエリと一致するファイルおよびフォルダのリストを返します。
リクエスト本文が無効な場合にエラーを返します。
invalid_query - 指定した本文パラメータのいずれかが正しくない可能性があります。これは、queryに誤りがあることと、from値が有効なテンプレートを表していない場合があることを意味します。unexpected_json_type - query文字列からの引数がquery_paramに存在しません。たとえば、name = :nameのqueryでは、{ "name": "Box, Inc" }のように、query_paramにname引数の値を含める必要があります。指定されたscopeとtemplateKeyのメタデータテンプレートが見つか らない場合にエラーを返します。エラーレスポンスには追加の詳細が含まれます。
instance_not_found - テンプレートが見つからなかった場合に返されます。Enterprise ID (enterprise_12345など) を含むテンプレート全体のスコープを必ず使用してください。予期しないクライアントエラー。
curl -i -X POST "https://api.box.com/2.0/files/12345" \
-H "authorization: Bearer <ACCESS_TOKEN>" \
-H "content-type: application/json" \
-d '{
"from": "enterprise_123456.contractTemplate",
"query": "amount >= :value",
"query_params": {
"value": 100
},
"fields": [
"created_at",
"metadata.enterprise_123456.contractTemplate.amount",
"metadata.enterprise_123456.contractTemplate.customerName"
],
"ancestor_folder_id": "5555",
"order_by": [
{
"field_key": "amount",
"direction": "asc"
}
],
"limit": 100
}'await client.search.searchByMetadataQuery({
ancestorFolderId: '0',
from: searchFrom,
query:
'name = :name AND age < :age AND birthDate >= :birthDate AND countryCode = :countryCode AND sports = :sports',
queryParams: {
['name']: 'John',
['age']: 50,
['birthDate']: '2001-01-01T02:20:10.120Z',
['countryCode']: 'US',
['sports']: ['basketball', 'tennis'],
},
} satisfies MetadataQuery);client.search.search_by_metadata_query(
search_from,
"0",
query="name = :name AND age < :age AND birthDate >= :birthDate AND countryCode = :countryCode AND sports = :sports",
query_params={
"name": "John",
"age": 50,
"birthDate": "2001-01-01T02:20:10.120Z",
"countryCode": "US",
"sports": ["basketball", "tennis"],
},
)await client.Search.SearchByMetadataQueryAsync(requestBody: new MetadataQuery(ancestorFolderId: "0", from: searchFrom) { Query = "name = :name AND age < :age AND birthDate >= :birthDate AND countryCode = :countryCode AND sports = :sports", QueryParams = new Dictionary<string, object>() { { "name", "John" }, { "age", 50 }, { "birthDate", "2001-01-01T02:20:10.120Z" }, { "countryCode", "US" }, { "sports", Array.AsReadOnly(new [] {"basketball","tennis"}) } } });try await client.search.searchByMetadataQuery(requestBody: MetadataQuery(ancestorFolderId: "0", from: searchFrom, query: "name = :name AND age < :age AND birthDate >= :birthDate AND countryCode = :countryCode AND sports = :sports", queryParams: ["name": "John", "age": 50, "birthDate": "2001-01-01T02:20:10.120Z", "countryCode": "US", "sports": ["basketball", "tennis"]]))client.getSearch().searchByMetadataQuery(new MetadataQuery.Builder(searchFrom, "0").query("name = :name AND age < :age AND birthDate >= :birthDate AND countryCode = :countryCode AND sports = :sports").queryParams(mapOf(entryOf("name", "John"), entryOf("age", 50), entryOf("birthDate", "2001-01-01T02:20:10.120Z"), entryOf("countryCode", "US"), entryOf("sports", Arrays.asList("basketball", "tennis")))).build())await client.Search.SearchByMetadataQueryAsync(requestBody: new MetadataQuery(ancestorFolderId: "0", from: searchFrom) { Query = "name = :name AND age < :age AND birthDate >= :birthDate AND countryCode = :countryCode AND sports = :sports", QueryParams = new Dictionary<string, object>() { { "name", "John" }, { "age", 50 }, { "birthDate", "2001-01-01T02:20:10.120Z" }, { "countryCode", "US" }, { "sports", Array.AsReadOnly(new [] {"basketball","tennis"}) } } });await client.search.searchByMetadataQuery({
ancestorFolderId: '0',
from: searchFrom,
query:
'name = :name AND age < :age AND birthDate >= :birthDate AND countryCode = :countryCode AND sports = :sports',
queryParams: {
['name']: 'John',
['age']: 50,
['birthDate']: '2001-01-01T02:20:10.120Z',
['countryCode']: 'US',
['sports']: ['basketball', 'tennis'],
},
} satisfies MetadataQuery);{
"entries": [
{
"etag": "1",
"id": "12345",
"type": "file",
"file_version": {
"id": "12345",
"type": "file_version",
"sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc"
},
"name": "Contract.pdf",
"sequence_id": "3",
"sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37",
"content_created_at": "2012-12-12T10:53:43-08:00",
"content_modified_at": "2012-12-12T10:53:43-08:00",
"created_at": "2012-12-12T10:53:43-08:00",
"created_by": {
"id": "11446498",
"type": "user",
"login": "ceo@example.com",
"name": "Aaron Levie"
},
"description": "Contract for Q1 renewal",
"item_status": "active",
"modified_at": "2012-12-12T10:53:43-08:00",
"modified_by": {
"id": "11446498",
"type": "user",
"login": "ceo@example.com",
"name": "Aaron Levie"
},
"owned_by": {
"id": "11446498",
"type": "user",
"login": "ceo@example.com",
"name": "Aaron Levie"
},
"parent": {
"etag": "1",
"id": "12345",
"type": "folder",
"name": "Contracts",
"sequence_id": "3"
},
"path_collection": {
"entries": [
{
"etag": "1",
"id": "12345",
"type": "folder",
"name": "Contracts",
"sequence_id": "3"
}
],
"total_count": 1
},
"purged_at": "2012-12-12T10:53:43-08:00",
"shared_link": {
"access": "open",
"download_count": 3,
"download_url": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg",
"effective_access": "company",
"effective_permission": "can_download",
"is_password_enabled": true,
"permissions": {
"can_download": true,
"can_edit": false,
"can_preview": true
},
"preview_count": 3,
"unshared_at": "2018-04-13T13:53:23-07:00",
"url": "https://www.box.com/s/vspke7y05sb214wjokpk",
"vanity_name": "my_url",
"vanity_url": "https://acme.app.box.com/v/my_url/"
},
"size": 629644,
"trashed_at": "2012-12-12T10:53:43-08:00",
"allowed_invitee_roles": [
"editor"
],
"classification": {
"color": "#FF0000",
"definition": "Content that should not be shared outside the company.",
"name": "Top Secret"
},
"comment_count": 10,
"disposition_at": "2012-12-12T10:53:43-08:00",
"expires_at": "2012-12-12T10:53:43-08:00",
"expiring_embed_link": {
"access_token": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
"expires_in": 3600,
"restricted_to": [
{
"object": {
"etag": "1",
"id": "12345",
"type": "folder",
"name": "Contracts",
"sequence_id": "3"
},
"scope": "item_download"
}
],
"token_type": "bearer",
"url": "https://cloud.app.box.com/preview/expiring_embed/..."
},
"extension": "pdf",
"has_collaborations": true,
"is_accessible_via_shared_link": true,
"is_associated_with_app_item": true,
"is_externally_owned": true,
"is_package": true,
"lock": {
"app_type": "office_wopiplus",
"created_at": "2012-12-12T10:53:43-08:00",
"created_by": {
"id": "11446498",
"type": "user",
"login": "ceo@example.com",
"name": "Aaron Levie"
},
"expired_at": "2012-12-12T10:53:43-08:00",
"id": "11446498",
"is_download_prevented": true,
"type": "lock"
},
"metadata": {
"enterprise_27335": {
"marketingCollateral": {
"$canEdit": true,
"$id": "01234500-12f1-1234-aa12-b1d234cb567e",
"$parent": "folder_59449484661",
"$scope": "enterprise_27335",
"$template": "marketingCollateral",
"$type": "properties-6bcba49f-ca6d-4d2a-a758-57fe6edf44d0",
"$typeVersion": 2,
"$version": 1
}
}
},
"permissions": {
"can_delete": true,
"can_download": true,
"can_invite_collaborator": true,
"can_rename": true,
"can_set_share_access": true,
"can_share": true,
"can_annotate": true,
"can_comment": true,
"can_preview": true,
"can_upload": true,
"can_view_annotations_all": true,
"can_view_annotations_self": true
},
"representations": {
"entries": [
{
"content": {
"url_template": "https://dl.boxcloud.com/api/2.0/internal_files/123/versions/345/representations/png_paged_2048x2048/content/{+asset_path}?watermark_content=4567"
},
"info": {
"url": "https://api.box.com/2.0/internal_files/123/versions/345/representations/png_paged_2048x2048"
},
"properties": {
"dimensions": "2048x2048",
"paged": "true",
"thumb": "true"
},
"representation": "png",
"status": {
"state": "success"
}
}
]
},
"shared_link_permission_options": [
"can_preview"
],
"tags": [
"approved"
],
"uploader_display_name": "Ellis Wiggins",
"version_number": "1",
"watermark_info": {
"is_watermarked": true
}
}
],
"limit": 100,
"next_marker": "0!-M7487OpVfBTNBV-XsQjU50gQFlbFFu5nArMWD7Ck61GH_Qo40M1S2xN5zWZPBzEjaQS1SOjJiQoo5BsXEl1bCVLRZ2pTqo4SKp9tyqzWQK2L51KR_nC1EgF5I_TJSFw7uO2Bx4HweGETOjh5_2oPSWw5iMkM-OvGApeR0lGFO48FDKoyzJyLgz5aogxoKd8VE09CesOOnTnmZvrW0puylDc-hFjY5YLmWFBKox3SOWiSDwKFkmZGNHyjEzza1nSwbZg6CYsAdGsDwGJhuCeTNsFzP5Mo5qx9wMloS0lSPuf2CcBInbIJzl2CKlXF3FvqhANttpm2nzdBTQRSoJyJnjVBpf4Q_HjV2eb4KIZBBlLy067UCVdv2AAWQFd5E2i6s1YiGRTtgMEZntOSUYD4IYLMWWm5Ra7ke_SP32SL3GSjbBQYIyCVQ.."
}