/** * 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); }