public static function getServiceClient() { if (!self::isServiceConfigured()) { return false; } $config = self::getConfig(); $client = new apiClient(array("ioFileCache_directory" => PIMCORE_CACHE_DIRECTORY)); $client->setApplicationName("pimcore CMF"); $key = file_get_contents(self::getPrivateKeyPath()); $client->setAssertionCredentials(new apiAssertionCredentials($config->email, array('https://www.googleapis.com/auth/analytics.readonly', "https://www.google.com/webmasters/tools/feeds/"), $key)); $client->setClientId($config->client_id); // token cache $tokenFile = PIMCORE_SYSTEM_TEMP_DIRECTORY . "/google-api.token"; if (file_exists($tokenFile)) { $tokenData = file_get_contents($tokenFile); $tokenInfo = Zend_Json::decode($tokenData); if ($tokenInfo["created"] + $tokenInfo["expires_in"] > time() - 900) { $token = $tokenData; } } if (!$token) { $client->getAuth()->refreshTokenWithAssertion(); $token = $client->getAuth()->getAccessToken(); file_put_contents($tokenFile, $token); } $client->setAccessToken($token); return $client; }
public function testSettersGetters() { $client = new apiClient(); $client->setClientId("client1"); $client->setClientSecret('client1secret'); $client->setState('1'); $client->setApprovalPrompt('force'); $client->setAccessType('offline'); global $apiConfig; $this->assertEquals('client1', $apiConfig['oauth2_client_id']); $this->assertEquals('client1secret', $apiConfig['oauth2_client_secret']); $client->setRedirectUri('localhost'); $client->setApplicationName('me'); $client->setUseObjects(false); $this->assertEquals('object', gettype($client->getAuth())); $this->assertEquals('object', gettype($client->getCache())); $this->assertEquals('object', gettype($client->getIo())); $client->setAuthClass('apiAuthNone'); $client->setAuthClass('apiOAuth2'); try { $client->setAccessToken(null); die('Should have thrown an apiAuthException.'); } catch (apiAuthException $e) { $this->assertEquals('Could not json decode the access token', $e->getMessage()); } $token = json_encode(array('access_token' => 'token')); $client->setAccessToken($token); $this->assertEquals($token, $client->getAccessToken()); }