/google_api/Auth/Simple.php

  1. <?php 
  2. /** 
  3. * Copyright 2010 Google Inc. 
  4. * 
  5. * Licensed under the Apache License, Version 2.0 (the "License"); 
  6. * you may not use this file except in compliance with the License. 
  7. * You may obtain a copy of the License at 
  8. * 
  9. * http://www.apache.org/licenses/LICENSE-2.0 
  10. * 
  11. * Unless required by applicable law or agreed to in writing, software 
  12. * distributed under the License is distributed on an "AS IS" BASIS,  
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
  14. * See the License for the specific language governing permissions and 
  15. * limitations under the License. 
  16. */ 
  17.  
  18. if (!class_exists('Google_Client')) { 
  19. require_once dirname(__FILE__) . '/../autoload.php'; 
  20.  
  21. /** 
  22. * Simple API access implementation. Can either be used to make requests 
  23. * completely unauthenticated, or by using a Simple API Access developer 
  24. * key. 
  25. */ 
  26. class Google_Auth_Simple extends Google_Auth_Abstract 
  27. private $key = null; 
  28. private $client; 
  29.  
  30. public function __construct(Google_Client $client, $config = null) 
  31. $this->client = $client; 
  32.  
  33. /** 
  34. * Perform an authenticated / signed apiHttpRequest. 
  35. * This function takes the apiHttpRequest, calls apiAuth->sign on it 
  36. * (which can modify the request in what ever way fits the auth mechanism) 
  37. * and then calls apiCurlIO::makeRequest on the signed request 
  38. * 
  39. * @param Google_Http_Request $request 
  40. * @return Google_Http_Request The resulting HTTP response including the 
  41. * responseHttpCode, responseHeaders and responseBody. 
  42. */ 
  43. public function authenticatedRequest(Google_Http_Request $request) 
  44. $request = $this->sign($request); 
  45. return $this->io->makeRequest($request); 
  46.  
  47. public function sign(Google_Http_Request $request) 
  48. $key = $this->client->getClassConfig($this, 'developer_key'); 
  49. if ($key) { 
  50. $this->client->getLogger()->debug( 
  51. 'Simple API Access developer key authentication' 
  52. ); 
  53. $request->setQueryParam('key', $key); 
  54. return $request; 
.