So far this SDK has only machine to machine authentication mechanism and the following functionality
- Get folder info
- Get folder items
- Create folder
- Delete folder
- Get trashed items
- Destroy trashed folder
- Restore the trashed folder
- Upload file
- Upload Pre flight - This API is used to check if the metadata supplied is valid or not.
- Get embed URL
- Delete a file (soft delete - Moves to trash)
- Destroy trashed file
- Restore the trashed file
use Linkstreet\Box\Box;
use Linkstreet\Box\Enums\SubscriptionType;
$box_sdk = new Box(['client_id' => "", "client_secret" => ""]);
$app_auth_info = [
"key_id" => "key id from box app",
"private_key" => "path to private key",
"pass_phrase" => "passphrase", // Can be empty
"subscription_type" => SubscriptionType::ENTERPRISE or SubscriptionType::USER,
"id" => "enterprise id or user id"
];
// Authenticates with box server and returns app_auth instance.
// Throws `GuzzleHttp\Exception\ClientException` on failure
$app_auth_instance = $box_sdk->getAppAuthClient($app_auth_info);
-
To get the service
$folder_service = $app_auth_instance->getFolderService();
-
Methods available in
$folder_service
1. getFolderInfo($folder_id); // Defaults to root folder (id = 0) 2. getFolderItems($folder_id = 0, $fields = [], $limit = 100, $offset = 0); // Defaults to root folder (id = 0) 3. create($folder_name, $parent_folder_id = 0) 4. delete($folder_id, $recursive = false, $e_tag = null) 5. getTrashedItems() 6. destroyTrashedFolder($folder_id) 7. restore($trashed_folder_id, $new_name = null, $parent_folder_id = null)
-
To get the service
$file_service = $app_auth_instance->getFileService();
-
Methods available in
$file_service
1. uploadPreFlight($file_path = "", $folder_id = 0, $filename = null); // If filename is null, file name will be derived from actual file name. 2. upload($file_path = "", $folder_id = 0, $filename = null); // If filename is null, file name will be derived from actual file name. 3. getEmbedUrl($file_id) 4. delete($file_id) 5. destroyTrashedFile($file_id) 6. restore($trashed_file_id, $new_name = null, $parent_folder_id = null)
- All APIs return
\GuzzleHttp\Psr7\Response
(to get the body use$response->getBody()->getContents()
. Refer Guzzle HTTP Messages) exceptgetEmbedUrl($file_id)
which returns string. - Guzzle related exceptions and its documentation can be found in Guzzle Docs