* @copyright Fabian Schlieper 2012 * @version 1.1 * @license See license.txt * */ // these 2 lines are just to enable error reporting and disable output buffering (don't include this in you application!) error_reporting(E_ALL); enable_implicit_flush(); // -- end of unneeded stuff // if there are many files in your Dropbox it can take some time, so disable the max. execution time set_time_limit(0); require_once("DropboxClient.php"); // you have to create an app at https://www.dropbox.com/developers/apps and enter details below: $dropbox = new DropboxClient(array( 'app_key' => "ft0zodv89xx804e", 'app_secret' => "ut43sn7m9wufy3s", 'app_full_access' => true, ),'it'); // first try to load existing access token $access_token = load_token("access"); if(!empty($access_token)) { $dropbox->SetAccessToken($access_token); echo "loaded access token:"; print_r($access_token); } elseif(!empty($_GET['auth_callback'])) // are we coming from dropbox's auth page? { // then load our previosly created request token $request_token = load_token($_GET['oauth_token']); if(empty($request_token)) die('Request token not found!'); // get & store access token, the request token is not needed anymore $access_token = $dropbox->GetAccessToken($request_token); store_token($access_token, "access"); delete_token($_GET['oauth_token']); } // checks if access token is required if(!$dropbox->IsAuthorized()) { // redirect user to dropbox auth page $return_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?auth_callback=1"; $auth_url = $dropbox->BuildAuthorizeUrl($return_url); $request_token = $dropbox->GetRequestToken(); store_token($request_token, $request_token['t']); die("Authentication required. Click here."); } echo "
";
echo "Account:\r\n";
print_r($dropbox->GetAccountInfo());

$files = $dropbox->GetFiles("",false);

echo "\r\n\r\nFiles:\r\n";
print_r(array_keys($files));

if(!empty($files)) {
	$file = reset($files);
	$test_file = "test_download_".basename($file->path);
	
	echo "\r\n\r\nMeta data of $file->path:\r\n";
	print_r($dropbox->GetMetadata($file->path));
	
	echo "\r\n\r\nDownloading $file->path:\r\n";
	print_r($dropbox->DownloadFile($file, $test_file));
		
	echo "\r\n\r\nUploading $test_file:\r\n";
	print_r($dropbox->UploadFile($test_file));
	echo "\r\n done!";	
	
	echo "\r\n\r\nRevisions of $test_file:\r\n";	
	print_r($dropbox->GetRevisions($test_file));
}
	
echo "\r\n\r\nSearching for JPG files:\r\n";	
$jpg_files = $dropbox->Search("/", ".jpg", 5);
if(empty($jpg_files))
	echo "Nothing found.";
else {
	print_r($jpg_files);
	$jpg_file = reset($jpg_files);

	echo "\r\n\r\nThumbnail of $jpg_file->path:\r\n";	
	$img_data = base64_encode($dropbox->GetThumbnail($jpg_file->path));
	echo "\"Generating";
}


function store_token($token, $name)
{
	if(!file_put_contents("tokens/$name.token", serialize($token)))
		die('
Could not store token! Make sure that the directory `tokens` exists and is writable!'); } function load_token($name) { if(!file_exists("tokens/$name.token")) return null; return @unserialize(@file_get_contents("tokens/$name.token")); } function delete_token($name) { @unlink("tokens/$name.token"); } function enable_implicit_flush() { @apache_setenv('no-gzip', 1); @ini_set('zlib.output_compression', 0); @ini_set('implicit_flush', 1); for ($i = 0; $i < ob_get_level(); $i++) { ob_end_flush(); } ob_implicit_flush(1); echo ""; }