/**
  * Update Event with missing data using GraphAPI.
  *
  * @param   EventModel  $event
  * @param   bool        $save
  * @return  string      Error message, if any
  * @throws  SystemException
  */
 protected function updateEvent(EventModel $event, $save)
 {
     static $accessToken;
     if (!$accessToken) {
         try {
             $externalUser = UserExternalModel::where('user_id', $this->importUserId)->where('provider', UserExternalModel::PROVIDER_FACEBOOK)->firstOrFail();
             $accessToken = $externalUser->token;
         } catch (ModelNotFoundException $e) {
             $accessToken = GraphAPI::instance()->getAppAccessToken();
         }
     }
     try {
         $response = GraphAPI::instance()->get('/' . $event->facebook_id, ['cover', 'description', 'place{id,name,location}', 'ticket_uri'], $accessToken);
     } catch (SystemException $e) {
         return $e->getMessage();
     }
     $eventObject = $response->getGraphEvent();
     $event->info = $eventObject->getDescription();
     $event->ticket_url = $eventObject->getTicketUri();
     if ($save) {
         $coverObject = $eventObject->getCover();
         if ($coverObject->getSource()) {
             $event->save();
             $event->importFlyer($coverObject->getSource(), true);
         }
     }
     return $this->updateVenue($event, $eventObject->getPlace(), $save);
 }