/**
  * 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();
     $coverObject = $eventObject->getCover();
     $event->info = $eventObject->getDescription();
     $event->ticket_url = $eventObject->getTicketUri();
     // Don't update flyer if the current is uploaded rather than linked
     if (!$event->flyer_id) {
         $event->flyer_url = $event->flyer_front_url = $coverObject->getSource();
     }
     return $this->updateVenue($event, $eventObject->getPlace(), $save);
 }