Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 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());
 }