Permalink
Browse files

MDL-37217 repository: Adding Google API PHP SDK

  • Loading branch information...
1 parent 91c8cf9 commit 0acb0746184e2d7d24c94f74df0904c550b3ca27 @FMCorz FMCorz committed Jan 8, 2013
Showing with 40,121 additions and 0 deletions.
  1. +453 −0 lib/google/Google_Client.php
  2. +203 −0 lib/google/LICENSE
  3. +4 −0 lib/google/NOTICE
  4. +40 −0 lib/google/README
  5. +95 −0 lib/google/auth/Google_AssertionCredentials.php
  6. +36 −0 lib/google/auth/Google_Auth.php
  7. +48 −0 lib/google/auth/Google_AuthNone.php
  8. +63 −0 lib/google/auth/Google_LoginTicket.php
  9. +444 −0 lib/google/auth/Google_OAuth2.php
  10. +70 −0 lib/google/auth/Google_P12Signer.php
  11. +66 −0 lib/google/auth/Google_PemVerifier.php
  12. +30 −0 lib/google/auth/Google_Signer.php
  13. +31 −0 lib/google/auth/Google_Verifier.php
  14. +98 −0 lib/google/cache/Google_ApcCache.php
  15. +55 −0 lib/google/cache/Google_Cache.php
  16. +137 −0 lib/google/cache/Google_FileCache.php
  17. +130 −0 lib/google/cache/Google_MemcacheCache.php
  18. +81 −0 lib/google/config.php
  19. +567 −0 lib/google/contrib/Google_AdexchangebuyerService.php
  20. +1,140 −0 lib/google/contrib/Google_AdsenseService.php
  21. +1,378 −0 lib/google/contrib/Google_AdsensehostService.php
  22. +1,887 −0 lib/google/contrib/Google_AnalyticsService.php
  23. +1,821 −0 lib/google/contrib/Google_BigqueryService.php
  24. +1,301 −0 lib/google/contrib/Google_BloggerService.php
  25. +2,793 −0 lib/google/contrib/Google_BooksService.php
  26. +1,931 −0 lib/google/contrib/Google_CalendarService.php
  27. +2,629 −0 lib/google/contrib/Google_ComputeService.php
  28. +836 −0 lib/google/contrib/Google_CustomsearchService.php
  29. +2,157 −0 lib/google/contrib/Google_DriveService.php
  30. +89 −0 lib/google/contrib/Google_FreebaseService.php
  31. +1,326 −0 lib/google/contrib/Google_FusiontablesService.php
  32. +1,605 −0 lib/google/contrib/Google_GanService.php
  33. +283 −0 lib/google/contrib/Google_LatitudeService.php
  34. +285 −0 lib/google/contrib/Google_LicensingService.php
  35. +1,888 −0 lib/google/contrib/Google_ModeratorService.php
  36. +265 −0 lib/google/contrib/Google_Oauth2Service.php
  37. +2,554 −0 lib/google/contrib/Google_OrkutService.php
  38. +474 −0 lib/google/contrib/Google_PagespeedonlineService.php
  39. +567 −0 lib/google/contrib/Google_PlusMomentsService.php
  40. +1,525 −0 lib/google/contrib/Google_PlusService.php
  41. +429 −0 lib/google/contrib/Google_PredictionService.php
  42. +1,311 −0 lib/google/contrib/Google_ShoppingService.php
  43. +287 −0 lib/google/contrib/Google_SiteVerificationService.php
  44. +1,076 −0 lib/google/contrib/Google_StorageService.php
  45. +423 −0 lib/google/contrib/Google_TaskqueueService.php
  46. +580 −0 lib/google/contrib/Google_TasksService.php
  47. +244 −0 lib/google/contrib/Google_TranslateService.php
  48. +325 −0 lib/google/contrib/Google_UrlshortenerService.php
  49. +130 −0 lib/google/contrib/Google_WebfontsService.php
  50. +996 −0 lib/google/contrib/Google_YoutubeService.php
  51. +201 −0 lib/google/curlio.php
  52. +209 −0 lib/google/external/URITemplateParser.php
  53. +173 −0 lib/google/io/Google_CacheParser.php
  54. +278 −0 lib/google/io/Google_CurlIO.php
  55. +304 −0 lib/google/io/Google_HttpRequest.php
  56. +49 −0 lib/google/io/Google_IO.php
  57. +128 −0 lib/google/io/Google_REST.php
  58. +714 −0 lib/google/io/cacerts.pem
  59. +47 −0 lib/google/local_config.php
  60. +21 −0 lib/google/readme_moodle.txt
  61. +110 −0 lib/google/service/Google_BatchRequest.php
  62. +244 −0 lib/google/service/Google_MediaFileUpload.php
  63. +115 −0 lib/google/service/Google_Model.php
  64. +22 −0 lib/google/service/Google_Service.php
  65. +196 −0 lib/google/service/Google_ServiceResource.php
  66. +117 −0 lib/google/service/Google_Utils.php
  67. +7 −0 lib/thirdpartylibs.xml

Large diffs are not rendered by default.

Oops, something went wrong.
View
@@ -0,0 +1,203 @@
+Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction,
+and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by
+the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all
+other entities that control, are controlled by, or are under common
+control with that entity. For the purposes of this definition,
+"control" means (i) the power, direct or indirect, to cause the
+direction or management of such entity, whether by contract or
+otherwise, or (ii) ownership of fifty percent (50%) or more of the
+outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity
+exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications,
+including but not limited to software source code, documentation
+source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical
+transformation or translation of a Source form, including but
+not limited to compiled object code, generated documentation,
+and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or
+Object form, made available under the License, as indicated by a
+copyright notice that is included in or attached to the work
+(an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object
+form, that is based on (or derived from) the Work and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship. For the purposes
+of this License, Derivative Works shall not include works that remain
+separable from, or merely link (or bind by name) to the interfaces of,
+the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including
+the original version of the Work and any modifications or additions
+to that Work or Derivative Works thereof, that is intentionally
+submitted to Licensor for inclusion in the Work by the copyright owner
+or by an individual or Legal Entity authorized to submit on behalf of
+the copyright owner. For the purposes of this definition, "submitted"
+means any form of electronic, verbal, or written communication sent
+to the Licensor or its representatives, including but not limited to
+communication on electronic mailing lists, source code control systems,
+and issue tracking systems that are managed by, or on behalf of, the
+Licensor for the purpose of discussing and improving the Work, but
+excluding communication that is conspicuously marked or otherwise
+designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity
+on behalf of whom a Contribution has been received by Licensor and
+subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the
+Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+(except as stated in this section) patent license to make, have made,
+use, offer to sell, sell, import, and otherwise transfer the Work,
+where such license applies only to those patent claims licensable
+by such Contributor that are necessarily infringed by their
+Contribution(s) alone or by combination of their Contribution(s)
+with the Work to which such Contribution(s) was submitted. If You
+institute patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Work
+or a Contribution incorporated within the Work constitutes direct
+or contributory patent infringement, then any patent licenses
+granted to You under this License for that Work shall terminate
+as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+Work or Derivative Works thereof in any medium, with or without
+modifications, and in Source or Object form, provided that You
+meet the following conditions:
+
+(a) You must give any other recipients of the Work or
+Derivative Works a copy of this License; and
+
+(b) You must cause any modified files to carry prominent notices
+stating that You changed the files; and
+
+(c) You must retain, in the Source form of any Derivative Works
+that You distribute, all copyright, patent, trademark, and
+attribution notices from the Source form of the Work,
+excluding those notices that do not pertain to any part of
+the Derivative Works; and
+
+(d) If the Work includes a "NOTICE" text file as part of its
+distribution, then any Derivative Works that You distribute must
+include a readable copy of the attribution notices contained
+within such NOTICE file, excluding those notices that do not
+pertain to any part of the Derivative Works, in at least one
+of the following places: within a NOTICE text file distributed
+as part of the Derivative Works; within the Source form or
+documentation, if provided along with the Derivative Works; or,
+within a display generated by the Derivative Works, if and
+wherever such third-party notices normally appear. The contents
+of the NOTICE file are for informational purposes only and
+do not modify the License. You may add Your own attribution
+notices within Derivative Works that You distribute, alongside
+or as an addendum to the NOTICE text from the Work, provided
+that such additional attribution notices cannot be construed
+as modifying the License.
+
+You may add Your own copyright statement to Your modifications and
+may provide additional or different license terms and conditions
+for use, reproduction, or distribution of Your modifications, or
+for any such Derivative Works as a whole, provided Your use,
+reproduction, and distribution of the Work otherwise complies with
+the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+any Contribution intentionally submitted for inclusion in the Work
+by You to the Licensor shall be under the terms and conditions of
+this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify
+the terms of any separate license agreement you may have executed
+with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+names, trademarks, service marks, or product names of the Licensor,
+except as required for reasonable and customary use in describing the
+origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+agreed to in writing, Licensor provides the Work (and each
+Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied, including, without limitation, any warranties or conditions
+of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+PARTICULAR PURPOSE. You are solely responsible for determining the
+appropriateness of using or redistributing the Work and assume any
+risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+whether in tort (including negligence), contract, or otherwise,
+unless required by applicable law (such as deliberate and grossly
+negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special,
+incidental, or consequential damages of any character arising as a
+result of this License or out of the use or inability to use the
+Work (including but not limited to damages for loss of goodwill,
+work stoppage, computer failure or malfunction, or any and all
+other commercial damages or losses), even if such Contributor
+has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+the Work or Derivative Works thereof, You may choose to offer,
+and charge a fee for, acceptance of support, warranty, indemnity,
+or other liability obligations and/or rights consistent with this
+License. However, in accepting such obligations, You may act only
+on Your own behalf and on Your sole responsibility, not on behalf
+of any other Contributor, and only if You agree to indemnify,
+defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason
+of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+To apply the Apache License to your work, attach the following
+boilerplate notice, with the fields enclosed by brackets "[]"
+replaced with your own identifying information. (Don't include
+the brackets!) The text should be enclosed in the appropriate
+comment syntax for the file format. We also recommend that a
+file or class name and description of purpose be included on the
+same "printed page" as the copyright notice for easier
+identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
View
@@ -0,0 +1,4 @@
+This product contains the following libraries:
+
+XRDS-Simple library from http://code.google.com/p/diso/
+Apache License 2.0
View
@@ -0,0 +1,40 @@
+Google APIs Client Library for PHP
+=====================================
+
+== Description
+The Google API Client Library enables you to work with Google APIs such as Google+, Drive, Tasks, or Latitude on your server.
+
+Requirements:
+ PHP 5.2.x or higher [http://www.php.net/]
+ PHP Curl extension [http://www.php.net/manual/en/intro.curl.php]
+ PHP JSON extension [http://php.net/manual/en/book.json.php]
+
+Project page:
+ http://code.google.com/p/google-api-php-client
+
+OAuth 2 instructions:
+ http://code.google.com/p/google-api-php-client/wiki/OAuth2
+
+Report a defect or feature request here:
+ http://code.google.com/p/google-api-php-client/issues/entry
+
+Subscribe to project updates in your feed reader:
+ http://code.google.com/feeds/p/google-api-php-client/updates/basic
+
+Supported sample applications:
+ http://code.google.com/p/google-api-php-client/wiki/Samples
+
+== Basic Example
+ <?php
+ require_once 'path/to/src/Google_Client.php';
+ require_once 'path/to/src/contrib/apiBooksService.php';
+
+ $client = new Google_Client();
+ $service = new Google_BooksService($client);
+
+ $optParams = array('filter' => 'free-ebooks');
+ $results = $service->volumes->listVolumes('Henry David Thoreau', $optParams);
+
+ foreach ($results['items'] as $item) {
+ print($item['volumeInfo']['title'] . '<br>');
+ }
@@ -0,0 +1,95 @@
+<?php
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Credentials object used for OAuth 2.0 Signed JWT assertion grants.
+ *
+ * @author Chirag Shah <chirags@google.com>
+ */
+class Google_AssertionCredentials {
+ const MAX_TOKEN_LIFETIME_SECS = 3600;
+
+ public $serviceAccountName;
+ public $scopes;
+ public $privateKey;
+ public $privateKeyPassword;
+ public $assertionType;
+ public $prn;
+
+ /**
+ * @param $serviceAccountName
+ * @param $scopes array List of scopes
+ * @param $privateKey
+ * @param string $privateKeyPassword
+ * @param string $assertionType
+ * @param bool|string $prn The email address of the user for which the
+ * application is requesting delegated access.
+ */
+ public function __construct(
+ $serviceAccountName,
+ $scopes,
+ $privateKey,
+ $privateKeyPassword = 'notasecret',
+ $assertionType = 'http://oauth.net/grant_type/jwt/1.0/bearer',
+ $prn = false) {
+ $this->serviceAccountName = $serviceAccountName;
+ $this->scopes = is_string($scopes) ? $scopes : implode(' ', $scopes);
+ $this->privateKey = $privateKey;
+ $this->privateKeyPassword = $privateKeyPassword;
+ $this->assertionType = $assertionType;
+ $this->prn = $prn;
+ }
+
+ public function generateAssertion() {
+ $now = time();
+
+ $jwtParams = array(
+ 'aud' => Google_OAuth2::OAUTH2_TOKEN_URI,
+ 'scope' => $this->scopes,
+ 'iat' => $now,
+ 'exp' => $now + self::MAX_TOKEN_LIFETIME_SECS,
+ 'iss' => $this->serviceAccountName,
+ );
+
+ if ($this->prn !== false) {
+ $jwtParams['prn'] = $this->prn;
+ }
+
+ return $this->makeSignedJwt($jwtParams);
+ }
+
+ /**
+ * Creates a signed JWT.
+ * @param array $payload
+ * @return string The signed JWT.
+ */
+ private function makeSignedJwt($payload) {
+ $header = array('typ' => 'JWT', 'alg' => 'RS256');
+
+ $segments = array(
+ Google_Utils::urlSafeB64Encode(json_encode($header)),
+ Google_Utils::urlSafeB64Encode(json_encode($payload))
+ );
+
+ $signingInput = implode('.', $segments);
+ $signer = new Google_P12Signer($this->privateKey, $this->privateKeyPassword);
+ $signature = $signer->sign($signingInput);
+ $segments[] = Google_Utils::urlSafeB64Encode($signature);
+
+ return implode(".", $segments);
+ }
+}
@@ -0,0 +1,36 @@
+<?php
+/*
+ * Copyright 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+require_once "Google_AuthNone.php";
+require_once "Google_OAuth2.php";
+
+/**
+ * Abstract class for the Authentication in the API client
+ * @author Chris Chabot <chabotc@google.com>
+ *
+ */
+abstract class Google_Auth {
+ abstract public function authenticate($service);
+ abstract public function sign(Google_HttpRequest $request);
+ abstract public function createAuthUrl($scope);
+
+ abstract public function getAccessToken();
+ abstract public function setAccessToken($accessToken);
+ abstract public function setDeveloperKey($developerKey);
+ abstract public function refreshToken($refreshToken);
+ abstract public function revokeToken();
+}
Oops, something went wrong.

0 comments on commit 0acb074

Please sign in to comment.