public function put($uid)
 {
     $this->callbackURL = Input::get('callback');
     $subscription_data = ['code' => Input::get('code'), 'state' => Input::get('state')];
     $authorization_data = [];
     try {
         list($authorization_data['dropbox_access_token'], $authorization_data['dropbox_user_id'], $authorization_data['url_state']) = $this->getWebAuth()->finish($subscription_data);
     } catch (Dropbox\Exception_BadRequest $e) {
         return ['success' => false, 'error_message' => $e->getMessage()];
     }
     assert($authorization_data['url_state'] === null);
     // Store this as a new Dropbox
     try {
         $dropbox = new Dropbox();
         $dropbox->id = $uid;
         $dropbox->dropbox_authorized_id = $authorization_data['dropbox_user_id'];
         $dropbox->dropbox_token = $authorization_data['dropbox_access_token'];
         $dropbox->save();
     } catch (Illuminate\Database\QueryException $e) {
         return ['success' => false, 'error_message' => $e->getMessage()];
     }
     // Queue Dropbox crawl
     try {
         Queue::push('DropboxCrawlerController@dequeue', ['id' => $dropbox->id], $this->sync_queue_id);
     } catch (Exception $e) {
         return ['success' => false, 'error_message' => $e->getMessage()];
     }
     return ['success' => true];
 }