private function getToken() { $locationModule = $this->locationService->getLocationModule('campaignchain/location-google-analytics', 'campaignchain-google-analytics'); foreach ($locationModule->getLocations() as $location) { return $this->tokenService->getToken($location); } return null; }
public function execute(Location $location) { // Set HTML title as Location name. $location->setName('Form on ' . ParserUtil::getHTMLTitle($location->getUrl())); // Set the Website page module as the Location module. $locationModule = $this->locationService->getLocationModule('campaignchain/location-website', 'campaignchain-website-form'); $location->setLocationModule($locationModule); // Set the image. $location->setImage($this->assetsHelper->getUrl('bundles/campaignchainlocationwebsite/images/icons/256x256/form.png', null)); return $location; }
/** * @return Location[] */ public function getParsedLocationsFromLinkedIn() { $channel = $this->channelWizard->getChannel(); $profile = $this->channelWizard->get('profile'); $locations = []; $locationName = $profile->displayName; if (!empty($profile->username)) { $locationName .= ' (' . $profile->username . ')'; } // Get the location module for the user stream. $locationModuleUser = $this->locationService->getLocationModule('campaignchain/location-linkedin', 'campaignchain-linkedin-user'); // Create the location instance for the user stream. $locationUser = new Location(); $locationUser->setIdentifier($profile->identifier); $locationUser->setName($locationName); $locationUser->setLocationModule($locationModuleUser); if (!$profile->photoURL || strlen($profile->photoURL) == 0) { $locationUser->setImage($this->assetsHelper->getUrl('/bundles/campaignchainchannellinkedin/ghost_person.png')); } else { $locationUser->setImage($profile->photoURL); } $locationUser->setChannel($channel); $locationModuleUser->addLocation($locationUser); $locations[$profile->identifier] = $locationUser; $tokens = $this->channelWizard->get('tokens'); /** @var Token $userToken */ $userToken = array_values($tokens)[0]; $connection = $this->client->getConnectionByToken($userToken); $companies = $connection->getCompanies(); //there is only a user page if (empty($companies)) { return $locations; } // Get the location module for the page stream. $locationModulePage = $this->locationService->getLocationModule('campaignchain/location-linkedin', 'campaignchain-linkedin-page'); $wizardPages = []; foreach ($companies as $company) { $newToken = new Token(); $newToken->setAccessToken($userToken->getAccessToken()); $newToken->setApplication($userToken->getApplication()); $newToken->setTokenSecret($userToken->getTokenSecret()); $tokens[$company['id']] = $newToken; $this->channelWizard->set('tokens', $tokens); $companyData = $connection->getCompanyProfile($company['id']); $locationPage = new Location(); $locationPage->setChannel($channel); $locationPage->setName($companyData['name']); $locationPage->setIdentifier($companyData['id']); if (isset($companyData['squareLogoUrl'])) { $locationPage->setImage($companyData['squareLogoUrl']); } else { $locationPage->setImage($this->assetsHelper->getUrl('/bundles/campaignchainchannellinkedin/ghost_person.png')); } $locationPage->setLocationModule($locationModulePage); $locationModulePage->addLocation($locationPage); $locations[$companyData['id']] = $locationPage; $wizardPages[$companyData['id']] = $companyData; } $this->channelWizard->set('pagesData', $wizardPages); return $locations; }