public function tryToGetAnAccessToken(Google_Client $client)
 {
     $this->checkClientCredentials();
     $client->setRedirectUri("urn:ietf:wg:oauth:2.0:oob");
     $client->setConfig('access_type', 'offline');
     $authUrl = $client->createAuthUrl();
     echo "\nPlease enter the auth code:\n";
     ob_flush();
     `open '{$authUrl}'`;
     $authCode = trim(fgets(STDIN));
     if ($accessToken = $client->fetchAccessTokenWithAuthCode($authCode)) {
         if (isset($accessToken['access_token'])) {
             return $accessToken;
         }
     }
     return false;
 }
 public function testSettersGetters()
 {
     $client = new Google_Client();
     $client->setClientId("client1");
     $client->setClientSecret('client1secret');
     $client->setState('1');
     $client->setApprovalPrompt('force');
     $client->setAccessType('offline');
     $client->setRedirectUri('localhost');
     $client->setConfig('application_name', 'me');
     $client->setCache($this->getMock('Psr\\Cache\\CacheItemPoolInterface'));
     $this->assertEquals('object', gettype($client->getCache()));
     try {
         $client->setAccessToken(null);
         $this->fail('Should have thrown an Exception.');
     } catch (InvalidArgumentException $e) {
         $this->assertEquals('invalid json token', $e->getMessage());
     }
     $token = array('access_token' => 'token');
     $client->setAccessToken($token);
     $this->assertEquals($token, $client->getAccessToken());
 }