MDL-37217 repository: Adding Google API PHP SDK
This commit is contained in:
@@ -0,0 +1,453 @@
|
||||
<?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.
|
||||
*/
|
||||
|
||||
// Check for the required json and curl extensions, the Google APIs PHP Client
|
||||
// won't function without them.
|
||||
if (! function_exists('curl_init')) {
|
||||
throw new Exception('Google PHP API Client requires the CURL PHP extension');
|
||||
}
|
||||
|
||||
if (! function_exists('json_decode')) {
|
||||
throw new Exception('Google PHP API Client requires the JSON PHP extension');
|
||||
}
|
||||
|
||||
if (! function_exists('http_build_query')) {
|
||||
throw new Exception('Google PHP API Client requires http_build_query()');
|
||||
}
|
||||
|
||||
if (! ini_get('date.timezone') && function_exists('date_default_timezone_set')) {
|
||||
date_default_timezone_set('UTC');
|
||||
}
|
||||
|
||||
// hack around with the include paths a bit so the library 'just works'
|
||||
set_include_path(dirname(__FILE__) . PATH_SEPARATOR . get_include_path());
|
||||
|
||||
require_once "config.php";
|
||||
// If a local configuration file is found, merge it's values with the default configuration
|
||||
if (file_exists(dirname(__FILE__) . '/local_config.php')) {
|
||||
$defaultConfig = $apiConfig;
|
||||
require_once (dirname(__FILE__) . '/local_config.php');
|
||||
$apiConfig = array_merge($defaultConfig, $apiConfig);
|
||||
}
|
||||
|
||||
// Include the top level classes, they each include their own dependencies
|
||||
require_once 'service/Google_Model.php';
|
||||
require_once 'service/Google_Service.php';
|
||||
require_once 'service/Google_ServiceResource.php';
|
||||
require_once 'auth/Google_AssertionCredentials.php';
|
||||
require_once 'auth/Google_Signer.php';
|
||||
require_once 'auth/Google_P12Signer.php';
|
||||
require_once 'service/Google_BatchRequest.php';
|
||||
require_once 'external/URITemplateParser.php';
|
||||
require_once 'auth/Google_Auth.php';
|
||||
require_once 'cache/Google_Cache.php';
|
||||
require_once 'io/Google_IO.php';
|
||||
require_once('service/Google_MediaFileUpload.php');
|
||||
|
||||
/**
|
||||
* The Google API Client
|
||||
* http://code.google.com/p/google-api-php-client/
|
||||
*
|
||||
* @author Chris Chabot <[email protected]>
|
||||
* @author Chirag Shah <[email protected]>
|
||||
*/
|
||||
class Google_Client {
|
||||
/**
|
||||
* @static
|
||||
* @var Google_Auth $auth
|
||||
*/
|
||||
static $auth;
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @var Google_IO $io
|
||||
*/
|
||||
static $io;
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @var Google_Cache $cache
|
||||
*/
|
||||
static $cache;
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @var boolean $useBatch
|
||||
*/
|
||||
static $useBatch = false;
|
||||
|
||||
/** @var array $scopes */
|
||||
protected $scopes = array();
|
||||
|
||||
/** @var bool $useObjects */
|
||||
protected $useObjects = false;
|
||||
|
||||
// definitions of services that are discovered.
|
||||
protected $services = array();
|
||||
|
||||
// Used to track authenticated state, can't discover services after doing authenticate()
|
||||
private $authenticated = false;
|
||||
|
||||
public function __construct($config = array()) {
|
||||
global $apiConfig;
|
||||
$apiConfig = array_merge($apiConfig, $config);
|
||||
self::$cache = new $apiConfig['cacheClass']();
|
||||
self::$auth = new $apiConfig['authClass']();
|
||||
self::$io = new $apiConfig['ioClass']();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a service
|
||||
*/
|
||||
public function addService($service, $version = false) {
|
||||
global $apiConfig;
|
||||
if ($this->authenticated) {
|
||||
throw new Google_Exception('Cant add services after having authenticated');
|
||||
}
|
||||
$this->services[$service] = array();
|
||||
if (isset($apiConfig['services'][$service])) {
|
||||
// Merge the service descriptor with the default values
|
||||
$this->services[$service] = array_merge($this->services[$service], $apiConfig['services'][$service]);
|
||||
}
|
||||
}
|
||||
|
||||
public function authenticate($code = null) {
|
||||
$service = $this->prepareService();
|
||||
$this->authenticated = true;
|
||||
return self::$auth->authenticate($service, $code);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @visible For Testing
|
||||
*/
|
||||
public function prepareService() {
|
||||
$service = array();
|
||||
$scopes = array();
|
||||
if ($this->scopes) {
|
||||
$scopes = $this->scopes;
|
||||
} else {
|
||||
foreach ($this->services as $key => $val) {
|
||||
if (isset($val['scope'])) {
|
||||
if (is_array($val['scope'])) {
|
||||
$scopes = array_merge($val['scope'], $scopes);
|
||||
} else {
|
||||
$scopes[] = $val['scope'];
|
||||
}
|
||||
} else {
|
||||
$scopes[] = 'https://www.googleapis.com/auth/' . $key;
|
||||
}
|
||||
unset($val['discoveryURI']);
|
||||
unset($val['scope']);
|
||||
$service = array_merge($service, $val);
|
||||
}
|
||||
}
|
||||
$service['scope'] = implode(' ', $scopes);
|
||||
return $service;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the OAuth 2.0 access token using the string that resulted from calling authenticate()
|
||||
* or Google_Client#getAccessToken().
|
||||
* @param string $accessToken JSON encoded string containing in the following format:
|
||||
* {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer",
|
||||
* "expires_in":3600, "id_token":"TOKEN", "created":1320790426}
|
||||
*/
|
||||
public function setAccessToken($accessToken) {
|
||||
if ($accessToken == null || 'null' == $accessToken) {
|
||||
$accessToken = null;
|
||||
}
|
||||
self::$auth->setAccessToken($accessToken);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the type of Auth class the client should use.
|
||||
* @param string $authClassName
|
||||
*/
|
||||
public function setAuthClass($authClassName) {
|
||||
self::$auth = new $authClassName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct the OAuth 2.0 authorization request URI.
|
||||
* @return string
|
||||
*/
|
||||
public function createAuthUrl() {
|
||||
$service = $this->prepareService();
|
||||
return self::$auth->createAuthUrl($service['scope']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the OAuth 2.0 access token.
|
||||
* @return string $accessToken JSON encoded string in the following format:
|
||||
* {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer",
|
||||
* "expires_in":3600,"id_token":"TOKEN", "created":1320790426}
|
||||
*/
|
||||
public function getAccessToken() {
|
||||
$token = self::$auth->getAccessToken();
|
||||
return (null == $token || 'null' == $token) ? null : $token;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns if the access_token is expired.
|
||||
* @return bool Returns True if the access_token is expired.
|
||||
*/
|
||||
public function isAccessTokenExpired() {
|
||||
return self::$auth->isAccessTokenExpired();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the developer key to use, these are obtained through the API Console.
|
||||
* @see http://code.google.com/apis/console-help/#generatingdevkeys
|
||||
* @param string $developerKey
|
||||
*/
|
||||
public function setDeveloperKey($developerKey) {
|
||||
self::$auth->setDeveloperKey($developerKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set OAuth 2.0 "state" parameter to achieve per-request customization.
|
||||
* @see http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-3.1.2.2
|
||||
* @param string $state
|
||||
*/
|
||||
public function setState($state) {
|
||||
self::$auth->setState($state);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $accessType Possible values for access_type include:
|
||||
* {@code "offline"} to request offline access from the user. (This is the default value)
|
||||
* {@code "online"} to request online access from the user.
|
||||
*/
|
||||
public function setAccessType($accessType) {
|
||||
self::$auth->setAccessType($accessType);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $approvalPrompt Possible values for approval_prompt include:
|
||||
* {@code "force"} to force the approval UI to appear. (This is the default value)
|
||||
* {@code "auto"} to request auto-approval when possible.
|
||||
*/
|
||||
public function setApprovalPrompt($approvalPrompt) {
|
||||
self::$auth->setApprovalPrompt($approvalPrompt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the application name, this is included in the User-Agent HTTP header.
|
||||
* @param string $applicationName
|
||||
*/
|
||||
public function setApplicationName($applicationName) {
|
||||
global $apiConfig;
|
||||
$apiConfig['application_name'] = $applicationName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the OAuth 2.0 Client ID.
|
||||
* @param string $clientId
|
||||
*/
|
||||
public function setClientId($clientId) {
|
||||
global $apiConfig;
|
||||
$apiConfig['oauth2_client_id'] = $clientId;
|
||||
self::$auth->clientId = $clientId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the OAuth 2.0 Client ID.
|
||||
*/
|
||||
public function getClientId() {
|
||||
return self::$auth->clientId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the OAuth 2.0 Client Secret.
|
||||
* @param string $clientSecret
|
||||
*/
|
||||
public function setClientSecret($clientSecret) {
|
||||
global $apiConfig;
|
||||
$apiConfig['oauth2_client_secret'] = $clientSecret;
|
||||
self::$auth->clientSecret = $clientSecret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the OAuth 2.0 Client Secret.
|
||||
*/
|
||||
public function getClientSecret() {
|
||||
return self::$auth->clientSecret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the OAuth 2.0 Redirect URI.
|
||||
* @param string $redirectUri
|
||||
*/
|
||||
public function setRedirectUri($redirectUri) {
|
||||
global $apiConfig;
|
||||
$apiConfig['oauth2_redirect_uri'] = $redirectUri;
|
||||
self::$auth->redirectUri = $redirectUri;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the OAuth 2.0 Redirect URI.
|
||||
*/
|
||||
public function getRedirectUri() {
|
||||
return self::$auth->redirectUri;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches a fresh OAuth 2.0 access token with the given refresh token.
|
||||
* @param string $refreshToken
|
||||
* @return void
|
||||
*/
|
||||
public function refreshToken($refreshToken) {
|
||||
self::$auth->refreshToken($refreshToken);
|
||||
}
|
||||
|
||||
/**
|
||||
* Revoke an OAuth2 access token or refresh token. This method will revoke the current access
|
||||
* token, if a token isn't provided.
|
||||
* @throws Google_AuthException
|
||||
* @param string|null $token The token (access token or a refresh token) that should be revoked.
|
||||
* @return boolean Returns True if the revocation was successful, otherwise False.
|
||||
*/
|
||||
public function revokeToken($token = null) {
|
||||
self::$auth->revokeToken($token);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify an id_token. This method will verify the current id_token, if one
|
||||
* isn't provided.
|
||||
* @throws Google_AuthException
|
||||
* @param string|null $token The token (id_token) that should be verified.
|
||||
* @return Google_LoginTicket Returns an apiLoginTicket if the verification was
|
||||
* successful.
|
||||
*/
|
||||
public function verifyIdToken($token = null) {
|
||||
return self::$auth->verifyIdToken($token);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Google_AssertionCredentials $creds
|
||||
* @return void
|
||||
*/
|
||||
public function setAssertionCredentials(Google_AssertionCredentials $creds) {
|
||||
self::$auth->setAssertionCredentials($creds);
|
||||
}
|
||||
|
||||
/**
|
||||
* This function allows you to overrule the automatically generated scopes,
|
||||
* so that you can ask for more or less permission in the auth flow
|
||||
* Set this before you call authenticate() though!
|
||||
* @param array $scopes, ie: array('https://www.googleapis.com/auth/plus.me', 'https://www.googleapis.com/auth/moderator')
|
||||
*/
|
||||
public function setScopes($scopes) {
|
||||
$this->scopes = is_string($scopes) ? explode(" ", $scopes) : $scopes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Declare if objects should be returned by the api service classes.
|
||||
*
|
||||
* @param boolean $useObjects True if objects should be returned by the service classes.
|
||||
* False if associative arrays should be returned (default behavior).
|
||||
* @experimental
|
||||
*/
|
||||
public function setUseObjects($useObjects) {
|
||||
global $apiConfig;
|
||||
$apiConfig['use_objects'] = $useObjects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Declare if objects should be returned by the api service classes.
|
||||
*
|
||||
* @param boolean $useBatch True if the experimental batch support should
|
||||
* be enabled. Defaults to False.
|
||||
* @experimental
|
||||
*/
|
||||
public function setUseBatch($useBatch) {
|
||||
self::$useBatch = $useBatch;
|
||||
}
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @return Google_Auth the implementation of apiAuth.
|
||||
*/
|
||||
public static function getAuth() {
|
||||
return Google_Client::$auth;
|
||||
}
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @return Google_IO the implementation of apiIo.
|
||||
*/
|
||||
public static function getIo() {
|
||||
return Google_Client::$io;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Google_Cache the implementation of apiCache.
|
||||
*/
|
||||
public function getCache() {
|
||||
return Google_Client::$cache;
|
||||
}
|
||||
}
|
||||
|
||||
// Exceptions that the Google PHP API Library can throw
|
||||
class Google_Exception extends Exception {}
|
||||
class Google_AuthException extends Google_Exception {}
|
||||
class Google_CacheException extends Google_Exception {}
|
||||
class Google_IOException extends Google_Exception {}
|
||||
class Google_ServiceException extends Google_Exception {
|
||||
/**
|
||||
* Optional list of errors returned in a JSON body of an HTTP error response.
|
||||
*/
|
||||
protected $errors = array();
|
||||
|
||||
/**
|
||||
* Override default constructor to add ability to set $errors.
|
||||
*
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Exception|null $previous
|
||||
* @param [{string, string}] errors List of errors returned in an HTTP
|
||||
* response. Defaults to [].
|
||||
*/
|
||||
public function __construct($message, $code = 0, Exception $previous = null,
|
||||
$errors = array()) {
|
||||
if(version_compare(PHP_VERSION, '5.3.0') >= 0) {
|
||||
parent::__construct($message, $code, $previous);
|
||||
} else {
|
||||
parent::__construct($message, $code);
|
||||
}
|
||||
|
||||
$this->errors = $errors;
|
||||
}
|
||||
|
||||
/**
|
||||
* An example of the possible errors returned.
|
||||
*
|
||||
* {
|
||||
* "domain": "global",
|
||||
* "reason": "authError",
|
||||
* "message": "Invalid Credentials",
|
||||
* "locationType": "header",
|
||||
* "location": "Authorization",
|
||||
* }
|
||||
*
|
||||
* @return [{string, string}] List of errors return in an HTTP response or [].
|
||||
*/
|
||||
public function getErrors() {
|
||||
return $this->errors;
|
||||
}
|
||||
}
|
||||
Executable
+203
@@ -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.
|
||||
|
||||
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
This product contains the following libraries:
|
||||
|
||||
XRDS-Simple library from http://code.google.com/p/diso/
|
||||
Apache License 2.0
|
||||
Executable
+40
@@ -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 <[email protected]>
|
||||
*/
|
||||
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 <[email protected]>
|
||||
*
|
||||
*/
|
||||
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();
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
<?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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Do-nothing authentication implementation, use this if you want to make un-authenticated calls
|
||||
* @author Chris Chabot <[email protected]>
|
||||
* @author Chirag Shah <[email protected]>
|
||||
*/
|
||||
class Google_AuthNone extends Google_Auth {
|
||||
public $key = null;
|
||||
|
||||
public function __construct() {
|
||||
global $apiConfig;
|
||||
if (!empty($apiConfig['developer_key'])) {
|
||||
$this->setDeveloperKey($apiConfig['developer_key']);
|
||||
}
|
||||
}
|
||||
|
||||
public function setDeveloperKey($key) {$this->key = $key;}
|
||||
public function authenticate($service) {/*noop*/}
|
||||
public function setAccessToken($accessToken) {/* noop*/}
|
||||
public function getAccessToken() {return null;}
|
||||
public function createAuthUrl($scope) {return null;}
|
||||
public function refreshToken($refreshToken) {/* noop*/}
|
||||
public function revokeToken() {/* noop*/}
|
||||
|
||||
public function sign(Google_HttpRequest $request) {
|
||||
if ($this->key) {
|
||||
$request->setUrl($request->getUrl() . ((strpos($request->getUrl(), '?') === false) ? '?' : '&')
|
||||
. 'key='.urlencode($this->key));
|
||||
}
|
||||
return $request;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Class to hold information about an authenticated login.
|
||||
*
|
||||
* @author Brian Eaton <[email protected]>
|
||||
*/
|
||||
class Google_LoginTicket {
|
||||
const USER_ATTR = "id";
|
||||
|
||||
// Information from id token envelope.
|
||||
private $envelope;
|
||||
|
||||
// Information from id token payload.
|
||||
private $payload;
|
||||
|
||||
/**
|
||||
* Creates a user based on the supplied token.
|
||||
*
|
||||
* @param string $envelope Header from a verified authentication token.
|
||||
* @param string $payload Information from a verified authentication token.
|
||||
*/
|
||||
public function __construct($envelope, $payload) {
|
||||
$this->envelope = $envelope;
|
||||
$this->payload = $payload;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the numeric identifier for the user.
|
||||
* @throws Google_AuthException
|
||||
* @return
|
||||
*/
|
||||
public function getUserId() {
|
||||
if (array_key_exists(self::USER_ATTR, $this->payload)) {
|
||||
return $this->payload[self::USER_ATTR];
|
||||
}
|
||||
throw new Google_AuthException("No user_id in token");
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns attributes from the login ticket. This can contain
|
||||
* various information about the user session.
|
||||
* @return array
|
||||
*/
|
||||
public function getAttributes() {
|
||||
return array("envelope" => $this->envelope, "payload" => $this->payload);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,444 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2008 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_Verifier.php";
|
||||
require_once "Google_LoginTicket.php";
|
||||
require_once "service/Google_Utils.php";
|
||||
|
||||
/**
|
||||
* Authentication class that deals with the OAuth 2 web-server authentication flow
|
||||
*
|
||||
* @author Chris Chabot <[email protected]>
|
||||
* @author Chirag Shah <[email protected]>
|
||||
*
|
||||
*/
|
||||
class Google_OAuth2 extends Google_Auth {
|
||||
public $clientId;
|
||||
public $clientSecret;
|
||||
public $developerKey;
|
||||
public $token;
|
||||
public $redirectUri;
|
||||
public $state;
|
||||
public $accessType = 'offline';
|
||||
public $approvalPrompt = 'force';
|
||||
|
||||
/** @var Google_AssertionCredentials $assertionCredentials */
|
||||
public $assertionCredentials;
|
||||
|
||||
const OAUTH2_REVOKE_URI = 'https://accounts.google.com/o/oauth2/revoke';
|
||||
const OAUTH2_TOKEN_URI = 'https://accounts.google.com/o/oauth2/token';
|
||||
const OAUTH2_AUTH_URL = 'https://accounts.google.com/o/oauth2/auth';
|
||||
const OAUTH2_FEDERATED_SIGNON_CERTS_URL = 'https://www.googleapis.com/oauth2/v1/certs';
|
||||
const CLOCK_SKEW_SECS = 300; // five minutes in seconds
|
||||
const AUTH_TOKEN_LIFETIME_SECS = 300; // five minutes in seconds
|
||||
const MAX_TOKEN_LIFETIME_SECS = 86400; // one day in seconds
|
||||
|
||||
/**
|
||||
* Instantiates the class, but does not initiate the login flow, leaving it
|
||||
* to the discretion of the caller (which is done by calling authenticate()).
|
||||
*/
|
||||
public function __construct() {
|
||||
global $apiConfig;
|
||||
|
||||
if (! empty($apiConfig['developer_key'])) {
|
||||
$this->developerKey = $apiConfig['developer_key'];
|
||||
}
|
||||
|
||||
if (! empty($apiConfig['oauth2_client_id'])) {
|
||||
$this->clientId = $apiConfig['oauth2_client_id'];
|
||||
}
|
||||
|
||||
if (! empty($apiConfig['oauth2_client_secret'])) {
|
||||
$this->clientSecret = $apiConfig['oauth2_client_secret'];
|
||||
}
|
||||
|
||||
if (! empty($apiConfig['oauth2_redirect_uri'])) {
|
||||
$this->redirectUri = $apiConfig['oauth2_redirect_uri'];
|
||||
}
|
||||
|
||||
if (! empty($apiConfig['oauth2_access_type'])) {
|
||||
$this->accessType = $apiConfig['oauth2_access_type'];
|
||||
}
|
||||
|
||||
if (! empty($apiConfig['oauth2_approval_prompt'])) {
|
||||
$this->approvalPrompt = $apiConfig['oauth2_approval_prompt'];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $service
|
||||
* @param string|null $code
|
||||
* @throws Google_AuthException
|
||||
* @return string
|
||||
*/
|
||||
public function authenticate($service, $code = null) {
|
||||
if (!$code && isset($_GET['code'])) {
|
||||
$code = $_GET['code'];
|
||||
}
|
||||
|
||||
if ($code) {
|
||||
// We got here from the redirect from a successful authorization grant, fetch the access token
|
||||
$request = Google_Client::$io->makeRequest(new Google_HttpRequest(self::OAUTH2_TOKEN_URI, 'POST', array(), array(
|
||||
'code' => $code,
|
||||
'grant_type' => 'authorization_code',
|
||||
'redirect_uri' => $this->redirectUri,
|
||||
'client_id' => $this->clientId,
|
||||
'client_secret' => $this->clientSecret
|
||||
)));
|
||||
|
||||
if ($request->getResponseHttpCode() == 200) {
|
||||
$this->setAccessToken($request->getResponseBody());
|
||||
$this->token['created'] = time();
|
||||
return $this->getAccessToken();
|
||||
} else {
|
||||
$response = $request->getResponseBody();
|
||||
$decodedResponse = json_decode($response, true);
|
||||
if ($decodedResponse != null && $decodedResponse['error']) {
|
||||
$response = $decodedResponse['error'];
|
||||
}
|
||||
throw new Google_AuthException("Error fetching OAuth2 access token, message: '$response'", $request->getResponseHttpCode());
|
||||
}
|
||||
}
|
||||
|
||||
$authUrl = $this->createAuthUrl($service['scope']);
|
||||
header('Location: ' . $authUrl);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a URL to obtain user authorization.
|
||||
* The authorization endpoint allows the user to first
|
||||
* authenticate, and then grant/deny the access request.
|
||||
* @param string $scope The scope is expressed as a list of space-delimited strings.
|
||||
* @return string
|
||||
*/
|
||||
public function createAuthUrl($scope) {
|
||||
$params = array(
|
||||
'response_type=code',
|
||||
'redirect_uri=' . urlencode($this->redirectUri),
|
||||
'client_id=' . urlencode($this->clientId),
|
||||
'scope=' . urlencode($scope),
|
||||
'access_type=' . urlencode($this->accessType),
|
||||
'approval_prompt=' . urlencode($this->approvalPrompt)
|
||||
);
|
||||
|
||||
if (isset($this->state)) {
|
||||
$params[] = 'state=' . urlencode($this->state);
|
||||
}
|
||||
$params = implode('&', $params);
|
||||
return self::OAUTH2_AUTH_URL . "?$params";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $token
|
||||
* @throws Google_AuthException
|
||||
*/
|
||||
public function setAccessToken($token) {
|
||||
$token = json_decode($token, true);
|
||||
if ($token == null) {
|
||||
throw new Google_AuthException('Could not json decode the token');
|
||||
}
|
||||
if (! isset($token['access_token'])) {
|
||||
throw new Google_AuthException("Invalid token format");
|
||||
}
|
||||
$this->token = $token;
|
||||
}
|
||||
|
||||
public function getAccessToken() {
|
||||
return json_encode($this->token);
|
||||
}
|
||||
|
||||
public function setDeveloperKey($developerKey) {
|
||||
$this->developerKey = $developerKey;
|
||||
}
|
||||
|
||||
public function setState($state) {
|
||||
$this->state = $state;
|
||||
}
|
||||
|
||||
public function setAccessType($accessType) {
|
||||
$this->accessType = $accessType;
|
||||
}
|
||||
|
||||
public function setApprovalPrompt($approvalPrompt) {
|
||||
$this->approvalPrompt = $approvalPrompt;
|
||||
}
|
||||
|
||||
public function setAssertionCredentials(Google_AssertionCredentials $creds) {
|
||||
$this->assertionCredentials = $creds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Include an accessToken in a given apiHttpRequest.
|
||||
* @param Google_HttpRequest $request
|
||||
* @return Google_HttpRequest
|
||||
* @throws Google_AuthException
|
||||
*/
|
||||
public function sign(Google_HttpRequest $request) {
|
||||
// add the developer key to the request before signing it
|
||||
if ($this->developerKey) {
|
||||
$requestUrl = $request->getUrl();
|
||||
$requestUrl .= (strpos($request->getUrl(), '?') === false) ? '?' : '&';
|
||||
$requestUrl .= 'key=' . urlencode($this->developerKey);
|
||||
$request->setUrl($requestUrl);
|
||||
}
|
||||
|
||||
// Cannot sign the request without an OAuth access token.
|
||||
if (null == $this->token && null == $this->assertionCredentials) {
|
||||
return $request;
|
||||
}
|
||||
|
||||
// Check if the token is set to expire in the next 30 seconds
|
||||
// (or has already expired).
|
||||
if ($this->isAccessTokenExpired()) {
|
||||
if ($this->assertionCredentials) {
|
||||
$this->refreshTokenWithAssertion();
|
||||
} else {
|
||||
if (! array_key_exists('refresh_token', $this->token)) {
|
||||
throw new Google_AuthException("The OAuth 2.0 access token has expired, "
|
||||
. "and a refresh token is not available. Refresh tokens are not "
|
||||
. "returned for responses that were auto-approved.");
|
||||
}
|
||||
$this->refreshToken($this->token['refresh_token']);
|
||||
}
|
||||
}
|
||||
|
||||
// Add the OAuth2 header to the request
|
||||
$request->setRequestHeaders(
|
||||
array('Authorization' => 'Bearer ' . $this->token['access_token'])
|
||||
);
|
||||
|
||||
return $request;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches a fresh access token with the given refresh token.
|
||||
* @param string $refreshToken
|
||||
* @return void
|
||||
*/
|
||||
public function refreshToken($refreshToken) {
|
||||
$this->refreshTokenRequest(array(
|
||||
'client_id' => $this->clientId,
|
||||
'client_secret' => $this->clientSecret,
|
||||
'refresh_token' => $refreshToken,
|
||||
'grant_type' => 'refresh_token'
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches a fresh access token with a given assertion token.
|
||||
* @param Google_AssertionCredentials $assertionCredentials optional.
|
||||
* @return void
|
||||
*/
|
||||
public function refreshTokenWithAssertion($assertionCredentials = null) {
|
||||
if (!$assertionCredentials) {
|
||||
$assertionCredentials = $this->assertionCredentials;
|
||||
}
|
||||
|
||||
$this->refreshTokenRequest(array(
|
||||
'grant_type' => 'assertion',
|
||||
'assertion_type' => $assertionCredentials->assertionType,
|
||||
'assertion' => $assertionCredentials->generateAssertion(),
|
||||
));
|
||||
}
|
||||
|
||||
private function refreshTokenRequest($params) {
|
||||
$http = new Google_HttpRequest(self::OAUTH2_TOKEN_URI, 'POST', array(), $params);
|
||||
$request = Google_Client::$io->makeRequest($http);
|
||||
|
||||
$code = $request->getResponseHttpCode();
|
||||
$body = $request->getResponseBody();
|
||||
if (200 == $code) {
|
||||
$token = json_decode($body, true);
|
||||
if ($token == null) {
|
||||
throw new Google_AuthException("Could not json decode the access token");
|
||||
}
|
||||
|
||||
if (! isset($token['access_token']) || ! isset($token['expires_in'])) {
|
||||
throw new Google_AuthException("Invalid token format");
|
||||
}
|
||||
|
||||
$this->token['access_token'] = $token['access_token'];
|
||||
$this->token['expires_in'] = $token['expires_in'];
|
||||
$this->token['created'] = time();
|
||||
} else {
|
||||
throw new Google_AuthException("Error refreshing the OAuth2 token, message: '$body'", $code);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Revoke an OAuth2 access token or refresh token. This method will revoke the current access
|
||||
* token, if a token isn't provided.
|
||||
* @throws Google_AuthException
|
||||
* @param string|null $token The token (access token or a refresh token) that should be revoked.
|
||||
* @return boolean Returns True if the revocation was successful, otherwise False.
|
||||
*/
|
||||
public function revokeToken($token = null) {
|
||||
if (!$token) {
|
||||
$token = $this->token['access_token'];
|
||||
}
|
||||
$request = new Google_HttpRequest(self::OAUTH2_REVOKE_URI, 'POST', array(), "token=$token");
|
||||
$response = Google_Client::$io->makeRequest($request);
|
||||
$code = $response->getResponseHttpCode();
|
||||
if ($code == 200) {
|
||||
$this->token = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns if the access_token is expired.
|
||||
* @return bool Returns True if the access_token is expired.
|
||||
*/
|
||||
public function isAccessTokenExpired() {
|
||||
if (null == $this->token) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the token is set to expire in the next 30 seconds.
|
||||
$expired = ($this->token['created']
|
||||
+ ($this->token['expires_in'] - 30)) < time();
|
||||
|
||||
return $expired;
|
||||
}
|
||||
|
||||
// Gets federated sign-on certificates to use for verifying identity tokens.
|
||||
// Returns certs as array structure, where keys are key ids, and values
|
||||
// are PEM encoded certificates.
|
||||
private function getFederatedSignOnCerts() {
|
||||
// This relies on makeRequest caching certificate responses.
|
||||
$request = Google_Client::$io->makeRequest(new Google_HttpRequest(
|
||||
self::OAUTH2_FEDERATED_SIGNON_CERTS_URL));
|
||||
if ($request->getResponseHttpCode() == 200) {
|
||||
$certs = json_decode($request->getResponseBody(), true);
|
||||
if ($certs) {
|
||||
return $certs;
|
||||
}
|
||||
}
|
||||
throw new Google_AuthException(
|
||||
"Failed to retrieve verification certificates: '" .
|
||||
$request->getResponseBody() . "'.",
|
||||
$request->getResponseHttpCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies an id token and returns the authenticated apiLoginTicket.
|
||||
* Throws an exception if the id token is not valid.
|
||||
* The audience parameter can be used to control which id tokens are
|
||||
* accepted. By default, the id token must have been issued to this OAuth2 client.
|
||||
*
|
||||
* @param $id_token
|
||||
* @param $audience
|
||||
* @return Google_LoginTicket
|
||||
*/
|
||||
public function verifyIdToken($id_token = null, $audience = null) {
|
||||
if (!$id_token) {
|
||||
$id_token = $this->token['id_token'];
|
||||
}
|
||||
|
||||
$certs = $this->getFederatedSignonCerts();
|
||||
if (!$audience) {
|
||||
$audience = $this->clientId;
|
||||
}
|
||||
return $this->verifySignedJwtWithCerts($id_token, $certs, $audience);
|
||||
}
|
||||
|
||||
// Verifies the id token, returns the verified token contents.
|
||||
// Visible for testing.
|
||||
function verifySignedJwtWithCerts($jwt, $certs, $required_audience) {
|
||||
$segments = explode(".", $jwt);
|
||||
if (count($segments) != 3) {
|
||||
throw new Google_AuthException("Wrong number of segments in token: $jwt");
|
||||
}
|
||||
$signed = $segments[0] . "." . $segments[1];
|
||||
$signature = Google_Utils::urlSafeB64Decode($segments[2]);
|
||||
|
||||
// Parse envelope.
|
||||
$envelope = json_decode(Google_Utils::urlSafeB64Decode($segments[0]), true);
|
||||
if (!$envelope) {
|
||||
throw new Google_AuthException("Can't parse token envelope: " . $segments[0]);
|
||||
}
|
||||
|
||||
// Parse token
|
||||
$json_body = Google_Utils::urlSafeB64Decode($segments[1]);
|
||||
$payload = json_decode($json_body, true);
|
||||
if (!$payload) {
|
||||
throw new Google_AuthException("Can't parse token payload: " . $segments[1]);
|
||||
}
|
||||
|
||||
// Check signature
|
||||
$verified = false;
|
||||
foreach ($certs as $keyName => $pem) {
|
||||
$public_key = new Google_PemVerifier($pem);
|
||||
if ($public_key->verify($signed, $signature)) {
|
||||
$verified = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$verified) {
|
||||
throw new Google_AuthException("Invalid token signature: $jwt");
|
||||
}
|
||||
|
||||
// Check issued-at timestamp
|
||||
$iat = 0;
|
||||
if (array_key_exists("iat", $payload)) {
|
||||
$iat = $payload["iat"];
|
||||
}
|
||||
if (!$iat) {
|
||||
throw new Google_AuthException("No issue time in token: $json_body");
|
||||
}
|
||||
$earliest = $iat - self::CLOCK_SKEW_SECS;
|
||||
|
||||
// Check expiration timestamp
|
||||
$now = time();
|
||||
$exp = 0;
|
||||
if (array_key_exists("exp", $payload)) {
|
||||
$exp = $payload["exp"];
|
||||
}
|
||||
if (!$exp) {
|
||||
throw new Google_AuthException("No expiration time in token: $json_body");
|
||||
}
|
||||
if ($exp >= $now + self::MAX_TOKEN_LIFETIME_SECS) {
|
||||
throw new Google_AuthException(
|
||||
"Expiration time too far in future: $json_body");
|
||||
}
|
||||
|
||||
$latest = $exp + self::CLOCK_SKEW_SECS;
|
||||
if ($now < $earliest) {
|
||||
throw new Google_AuthException(
|
||||
"Token used too early, $now < $earliest: $json_body");
|
||||
}
|
||||
if ($now > $latest) {
|
||||
throw new Google_AuthException(
|
||||
"Token used too late, $now > $latest: $json_body");
|
||||
}
|
||||
|
||||
// TODO(beaton): check issuer field?
|
||||
|
||||
// Check audience
|
||||
$aud = $payload["aud"];
|
||||
if ($aud != $required_audience) {
|
||||
throw new Google_AuthException("Wrong recipient, $aud != $required_audience: $json_body");
|
||||
}
|
||||
|
||||
// All good.
|
||||
return new Google_LoginTicket($envelope, $payload);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Signs data.
|
||||
*
|
||||
* Only used for testing.
|
||||
*
|
||||
* @author Brian Eaton <[email protected]>
|
||||
*/
|
||||
class Google_P12Signer extends Google_Signer {
|
||||
// OpenSSL private key resource
|
||||
private $privateKey;
|
||||
|
||||
// Creates a new signer from a .p12 file.
|
||||
function __construct($p12, $password) {
|
||||
if (!function_exists('openssl_x509_read')) {
|
||||
throw new Exception(
|
||||
'The Google PHP API library needs the openssl PHP extension');
|
||||
}
|
||||
|
||||
// This throws on error
|
||||
$certs = array();
|
||||
if (!openssl_pkcs12_read($p12, $certs, $password)) {
|
||||
throw new Google_AuthException("Unable to parse the p12 file. " .
|
||||
"Is this a .p12 file? Is the password correct? OpenSSL error: " .
|
||||
openssl_error_string());
|
||||
}
|
||||
// TODO(beaton): is this part of the contract for the openssl_pkcs12_read
|
||||
// method? What happens if there are multiple private keys? Do we care?
|
||||
if (!array_key_exists("pkey", $certs) || !$certs["pkey"]) {
|
||||
throw new Google_AuthException("No private key found in p12 file.");
|
||||
}
|
||||
$this->privateKey = openssl_pkey_get_private($certs["pkey"]);
|
||||
if (!$this->privateKey) {
|
||||
throw new Google_AuthException("Unable to load private key in ");
|
||||
}
|
||||
}
|
||||
|
||||
function __destruct() {
|
||||
if ($this->privateKey) {
|
||||
openssl_pkey_free($this->privateKey);
|
||||
}
|
||||
}
|
||||
|
||||
function sign($data) {
|
||||
if(version_compare(PHP_VERSION, '5.3.0') < 0) {
|
||||
throw new Google_AuthException(
|
||||
"PHP 5.3.0 or higher is required to use service accounts.");
|
||||
}
|
||||
if (!openssl_sign($data, $signature, $this->privateKey, "sha256")) {
|
||||
throw new Google_AuthException("Unable to sign data");
|
||||
}
|
||||
return $signature;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Verifies signatures using PEM encoded certificates.
|
||||
*
|
||||
* @author Brian Eaton <[email protected]>
|
||||
*/
|
||||
class Google_PemVerifier extends Google_Verifier {
|
||||
private $publicKey;
|
||||
|
||||
/**
|
||||
* Constructs a verifier from the supplied PEM-encoded certificate.
|
||||
*
|
||||
* $pem: a PEM encoded certificate (not a file).
|
||||
* @param $pem
|
||||
* @throws Google_AuthException
|
||||
* @throws Google_Exception
|
||||
*/
|
||||
function __construct($pem) {
|
||||
if (!function_exists('openssl_x509_read')) {
|
||||
throw new Google_Exception('Google API PHP client needs the openssl PHP extension');
|
||||
}
|
||||
$this->publicKey = openssl_x509_read($pem);
|
||||
if (!$this->publicKey) {
|
||||
throw new Google_AuthException("Unable to parse PEM: $pem");
|
||||
}
|
||||
}
|
||||
|
||||
function __destruct() {
|
||||
if ($this->publicKey) {
|
||||
openssl_x509_free($this->publicKey);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies the signature on data.
|
||||
*
|
||||
* Returns true if the signature is valid, false otherwise.
|
||||
* @param $data
|
||||
* @param $signature
|
||||
* @throws Google_AuthException
|
||||
* @return bool
|
||||
*/
|
||||
function verify($data, $signature) {
|
||||
$status = openssl_verify($data, $signature, $this->publicKey, "sha256");
|
||||
if ($status === -1) {
|
||||
throw new Google_AuthException('Signature verification error: ' . openssl_error_string());
|
||||
}
|
||||
return $status === 1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 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_P12Signer.php";
|
||||
|
||||
/**
|
||||
* Signs data.
|
||||
*
|
||||
* @author Brian Eaton <[email protected]>
|
||||
*/
|
||||
abstract class Google_Signer {
|
||||
/**
|
||||
* Signs data, returns the signature as binary data.
|
||||
*/
|
||||
abstract public function sign($data);
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 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_PemVerifier.php";
|
||||
|
||||
/**
|
||||
* Verifies signatures.
|
||||
*
|
||||
* @author Brian Eaton <[email protected]>
|
||||
*/
|
||||
abstract class Google_Verifier {
|
||||
/**
|
||||
* Checks a signature, returns true if the signature is correct,
|
||||
* false otherwise.
|
||||
*/
|
||||
abstract public function verify($data, $signature);
|
||||
}
|
||||
Vendored
+98
@@ -0,0 +1,98 @@
|
||||
<?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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* A persistent storage class based on the APC cache, which is not
|
||||
* really very persistent, as soon as you restart your web server
|
||||
* the storage will be wiped, however for debugging and/or speed
|
||||
* it can be useful, kinda, and cache is a lot cheaper then storage.
|
||||
*
|
||||
* @author Chris Chabot <[email protected]>
|
||||
*/
|
||||
class googleApcCache extends Google_Cache {
|
||||
|
||||
public function __construct() {
|
||||
if (! function_exists('apc_add')) {
|
||||
throw new Google_CacheException("Apc functions not available");
|
||||
}
|
||||
}
|
||||
|
||||
private function isLocked($key) {
|
||||
if ((@apc_fetch($key . '.lock')) === false) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private function createLock($key) {
|
||||
// the interesting thing is that this could fail if the lock was created in the meantime..
|
||||
// but we'll ignore that out of convenience
|
||||
@apc_add($key . '.lock', '', 5);
|
||||
}
|
||||
|
||||
private function removeLock($key) {
|
||||
// suppress all warnings, if some other process removed it that's ok too
|
||||
@apc_delete($key . '.lock');
|
||||
}
|
||||
|
||||
private function waitForLock($key) {
|
||||
// 20 x 250 = 5 seconds
|
||||
$tries = 20;
|
||||
$cnt = 0;
|
||||
do {
|
||||
// 250 ms is a long time to sleep, but it does stop the server from burning all resources on polling locks..
|
||||
usleep(250);
|
||||
$cnt ++;
|
||||
} while ($cnt <= $tries && $this->isLocked($key));
|
||||
if ($this->isLocked($key)) {
|
||||
// 5 seconds passed, assume the owning process died off and remove it
|
||||
$this->removeLock($key);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function get($key, $expiration = false) {
|
||||
|
||||
if (($ret = @apc_fetch($key)) === false) {
|
||||
return false;
|
||||
}
|
||||
if (!$expiration || (time() - $ret['time'] > $expiration)) {
|
||||
$this->delete($key);
|
||||
return false;
|
||||
}
|
||||
return unserialize($ret['data']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function set($key, $value) {
|
||||
if (@apc_store($key, array('time' => time(), 'data' => serialize($value))) == false) {
|
||||
throw new Google_CacheException("Couldn't store data");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
* @param String $key
|
||||
*/
|
||||
public function delete($key) {
|
||||
@apc_delete($key);
|
||||
}
|
||||
}
|
||||
Vendored
+55
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2008 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_FileCache.php";
|
||||
require_once "Google_MemcacheCache.php";
|
||||
|
||||
/**
|
||||
* Abstract storage class
|
||||
*
|
||||
* @author Chris Chabot <[email protected]>
|
||||
*/
|
||||
abstract class Google_Cache {
|
||||
|
||||
/**
|
||||
* Retrieves the data for the given key, or false if they
|
||||
* key is unknown or expired
|
||||
*
|
||||
* @param String $key The key who's data to retrieve
|
||||
* @param boolean|int $expiration Expiration time in seconds
|
||||
*
|
||||
*/
|
||||
abstract function get($key, $expiration = false);
|
||||
|
||||
/**
|
||||
* Store the key => $value set. The $value is serialized
|
||||
* by this function so can be of any type
|
||||
*
|
||||
* @param string $key Key of the data
|
||||
* @param string $value data
|
||||
*/
|
||||
abstract function set($key, $value);
|
||||
|
||||
/**
|
||||
* Removes the key/data pair for the given $key
|
||||
*
|
||||
* @param String $key
|
||||
*/
|
||||
abstract function delete($key);
|
||||
}
|
||||
|
||||
|
||||
+137
@@ -0,0 +1,137 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2008 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This class implements a basic on disk storage. While that does
|
||||
* work quite well it's not the most elegant and scalable solution.
|
||||
* It will also get you into a heap of trouble when you try to run
|
||||
* this in a clustered environment. In those cases please use the
|
||||
* MySql back-end
|
||||
*
|
||||
* @author Chris Chabot <[email protected]>
|
||||
*/
|
||||
class Google_FileCache extends Google_Cache {
|
||||
private $path;
|
||||
|
||||
public function __construct() {
|
||||
global $apiConfig;
|
||||
$this->path = $apiConfig['ioFileCache_directory'];
|
||||
}
|
||||
|
||||
private function isLocked($storageFile) {
|
||||
// our lock file convention is simple: /the/file/path.lock
|
||||
return file_exists($storageFile . '.lock');
|
||||
}
|
||||
|
||||
private function createLock($storageFile) {
|
||||
$storageDir = dirname($storageFile);
|
||||
if (! is_dir($storageDir)) {
|
||||
// @codeCoverageIgnoreStart
|
||||
if (! @mkdir($storageDir, 0755, true)) {
|
||||
// make sure the failure isn't because of a concurrency issue
|
||||
if (! is_dir($storageDir)) {
|
||||
throw new Google_CacheException("Could not create storage directory: $storageDir");
|
||||
}
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
}
|
||||
@touch($storageFile . '.lock');
|
||||
}
|
||||
|
||||
private function removeLock($storageFile) {
|
||||
// suppress all warnings, if some other process removed it that's ok too
|
||||
@unlink($storageFile . '.lock');
|
||||
}
|
||||
|
||||
private function waitForLock($storageFile) {
|
||||
// 20 x 250 = 5 seconds
|
||||
$tries = 20;
|
||||
$cnt = 0;
|
||||
do {
|
||||
// make sure PHP picks up on file changes. This is an expensive action but really can't be avoided
|
||||
clearstatcache();
|
||||
// 250 ms is a long time to sleep, but it does stop the server from burning all resources on polling locks..
|
||||
usleep(250);
|
||||
$cnt ++;
|
||||
} while ($cnt <= $tries && $this->isLocked($storageFile));
|
||||
if ($this->isLocked($storageFile)) {
|
||||
// 5 seconds passed, assume the owning process died off and remove it
|
||||
$this->removeLock($storageFile);
|
||||
}
|
||||
}
|
||||
|
||||
private function getCacheDir($hash) {
|
||||
// use the first 2 characters of the hash as a directory prefix
|
||||
// this should prevent slowdowns due to huge directory listings
|
||||
// and thus give some basic amount of scalability
|
||||
return $this->path . '/' . substr($hash, 0, 2);
|
||||
}
|
||||
|
||||
private function getCacheFile($hash) {
|
||||
return $this->getCacheDir($hash) . '/' . $hash;
|
||||
}
|
||||
|
||||
public function get($key, $expiration = false) {
|
||||
$storageFile = $this->getCacheFile(md5($key));
|
||||
// See if this storage file is locked, if so we wait upto 5 seconds for the lock owning process to
|
||||
// complete it's work. If the lock is not released within that time frame, it's cleaned up.
|
||||
// This should give us a fair amount of 'Cache Stampeding' protection
|
||||
if ($this->isLocked($storageFile)) {
|
||||
$this->waitForLock($storageFile);
|
||||
}
|
||||
if (file_exists($storageFile) && is_readable($storageFile)) {
|
||||
$now = time();
|
||||
if (! $expiration || (($mtime = @filemtime($storageFile)) !== false && ($now - $mtime) < $expiration)) {
|
||||
if (($data = @file_get_contents($storageFile)) !== false) {
|
||||
$data = unserialize($data);
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function set($key, $value) {
|
||||
$storageDir = $this->getCacheDir(md5($key));
|
||||
$storageFile = $this->getCacheFile(md5($key));
|
||||
if ($this->isLocked($storageFile)) {
|
||||
// some other process is writing to this file too, wait until it's done to prevent hickups
|
||||
$this->waitForLock($storageFile);
|
||||
}
|
||||
if (! is_dir($storageDir)) {
|
||||
if (! @mkdir($storageDir, 0755, true)) {
|
||||
throw new Google_CacheException("Could not create storage directory: $storageDir");
|
||||
}
|
||||
}
|
||||
// we serialize the whole request object, since we don't only want the
|
||||
// responseContent but also the postBody used, headers, size, etc
|
||||
$data = serialize($value);
|
||||
$this->createLock($storageFile);
|
||||
if (! @file_put_contents($storageFile, $data)) {
|
||||
$this->removeLock($storageFile);
|
||||
throw new Google_CacheException("Could not store data in the file");
|
||||
}
|
||||
$this->removeLock($storageFile);
|
||||
}
|
||||
|
||||
public function delete($key) {
|
||||
$file = $this->getCacheFile(md5($key));
|
||||
if (! @unlink($file)) {
|
||||
throw new Google_CacheException("Cache file could not be deleted");
|
||||
}
|
||||
}
|
||||
}
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2008 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* A persistent storage class based on the memcache, which is not
|
||||
* really very persistent, as soon as you restart your memcache daemon
|
||||
* the storage will be wiped, however for debugging and/or speed
|
||||
* it can be useful, kinda, and cache is a lot cheaper then storage.
|
||||
*
|
||||
* @author Chris Chabot <[email protected]>
|
||||
*/
|
||||
class Google_MemcacheCache extends Google_Cache {
|
||||
private $connection = false;
|
||||
|
||||
public function __construct() {
|
||||
global $apiConfig;
|
||||
if (! function_exists('memcache_connect')) {
|
||||
throw new Google_CacheException("Memcache functions not available");
|
||||
}
|
||||
$this->host = $apiConfig['ioMemCacheCache_host'];
|
||||
$this->port = $apiConfig['ioMemCacheCache_port'];
|
||||
if (empty($this->host) || empty($this->port)) {
|
||||
throw new Google_CacheException("You need to supply a valid memcache host and port");
|
||||
}
|
||||
}
|
||||
|
||||
private function isLocked($key) {
|
||||
$this->check();
|
||||
if ((@memcache_get($this->connection, $key . '.lock')) === false) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private function createLock($key) {
|
||||
$this->check();
|
||||
// the interesting thing is that this could fail if the lock was created in the meantime..
|
||||
// but we'll ignore that out of convenience
|
||||
@memcache_add($this->connection, $key . '.lock', '', 0, 5);
|
||||
}
|
||||
|
||||
private function removeLock($key) {
|
||||
$this->check();
|
||||
// suppress all warnings, if some other process removed it that's ok too
|
||||
@memcache_delete($this->connection, $key . '.lock');
|
||||
}
|
||||
|
||||
private function waitForLock($key) {
|
||||
$this->check();
|
||||
// 20 x 250 = 5 seconds
|
||||
$tries = 20;
|
||||
$cnt = 0;
|
||||
do {
|
||||
// 250 ms is a long time to sleep, but it does stop the server from burning all resources on polling locks..
|
||||
usleep(250);
|
||||
$cnt ++;
|
||||
} while ($cnt <= $tries && $this->isLocked($key));
|
||||
if ($this->isLocked($key)) {
|
||||
// 5 seconds passed, assume the owning process died off and remove it
|
||||
$this->removeLock($key);
|
||||
}
|
||||
}
|
||||
|
||||
// I prefer lazy initialization since the cache isn't used every request
|
||||
// so this potentially saves a lot of overhead
|
||||
private function connect() {
|
||||
if (! $this->connection = @memcache_pconnect($this->host, $this->port)) {
|
||||
throw new Google_CacheException("Couldn't connect to memcache server");
|
||||
}
|
||||
}
|
||||
|
||||
private function check() {
|
||||
if (! $this->connection) {
|
||||
$this->connect();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function get($key, $expiration = false) {
|
||||
$this->check();
|
||||
if (($ret = @memcache_get($this->connection, $key)) === false) {
|
||||
return false;
|
||||
}
|
||||
if (! $expiration || (time() - $ret['time'] > $expiration)) {
|
||||
$this->delete($key);
|
||||
return false;
|
||||
}
|
||||
return $ret['data'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
* @param string $key
|
||||
* @param string $value
|
||||
* @throws Google_CacheException
|
||||
*/
|
||||
public function set($key, $value) {
|
||||
$this->check();
|
||||
// we store it with the cache_time default expiration so objects will at least get cleaned eventually.
|
||||
if (@memcache_set($this->connection, $key, array('time' => time(),
|
||||
'data' => $value), false) == false) {
|
||||
throw new Google_CacheException("Couldn't store data in cache");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
* @param String $key
|
||||
*/
|
||||
public function delete($key) {
|
||||
$this->check();
|
||||
@memcache_delete($this->connection, $key);
|
||||
}
|
||||
}
|
||||
Executable
+81
@@ -0,0 +1,81 @@
|
||||
<?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.
|
||||
*/
|
||||
|
||||
global $apiConfig;
|
||||
$apiConfig = array(
|
||||
// True if objects should be returned by the service classes.
|
||||
// False if associative arrays should be returned (default behavior).
|
||||
'use_objects' => false,
|
||||
|
||||
// The application_name is included in the User-Agent HTTP header.
|
||||
'application_name' => '',
|
||||
|
||||
// OAuth2 Settings, you can get these keys at https://code.google.com/apis/console
|
||||
'oauth2_client_id' => '',
|
||||
'oauth2_client_secret' => '',
|
||||
'oauth2_redirect_uri' => '',
|
||||
|
||||
// The developer key, you get this at https://code.google.com/apis/console
|
||||
'developer_key' => '',
|
||||
|
||||
// Site name to show in the Google's OAuth 1 authentication screen.
|
||||
'site_name' => 'www.example.org',
|
||||
|
||||
// Which Authentication, Storage and HTTP IO classes to use.
|
||||
'authClass' => 'Google_OAuth2',
|
||||
'ioClass' => 'Google_CurlIO',
|
||||
'cacheClass' => 'Google_FileCache',
|
||||
|
||||
// Don't change these unless you're working against a special development or testing environment.
|
||||
'basePath' => 'https://www.googleapis.com',
|
||||
|
||||
// IO Class dependent configuration, you only have to configure the values
|
||||
// for the class that was configured as the ioClass above
|
||||
'ioFileCache_directory' =>
|
||||
(function_exists('sys_get_temp_dir') ?
|
||||
sys_get_temp_dir() . '/Google_Client' :
|
||||
'/tmp/Google_Client'),
|
||||
|
||||
// Definition of service specific values like scopes, oauth token URLs, etc
|
||||
'services' => array(
|
||||
'analytics' => array('scope' => 'https://www.googleapis.com/auth/analytics.readonly'),
|
||||
'calendar' => array(
|
||||
'scope' => array(
|
||||
"https://www.googleapis.com/auth/calendar",
|
||||
"https://www.googleapis.com/auth/calendar.readonly",
|
||||
)
|
||||
),
|
||||
'books' => array('scope' => 'https://www.googleapis.com/auth/books'),
|
||||
'latitude' => array(
|
||||
'scope' => array(
|
||||
'https://www.googleapis.com/auth/latitude.all.best',
|
||||
'https://www.googleapis.com/auth/latitude.all.city',
|
||||
)
|
||||
),
|
||||
'moderator' => array('scope' => 'https://www.googleapis.com/auth/moderator'),
|
||||
'oauth2' => array(
|
||||
'scope' => array(
|
||||
'https://www.googleapis.com/auth/userinfo.profile',
|
||||
'https://www.googleapis.com/auth/userinfo.email',
|
||||
)
|
||||
),
|
||||
'plus' => array('scope' => 'https://www.googleapis.com/auth/plus.me'),
|
||||
'siteVerification' => array('scope' => 'https://www.googleapis.com/auth/siteverification'),
|
||||
'tasks' => array('scope' => 'https://www.googleapis.com/auth/tasks'),
|
||||
'urlshortener' => array('scope' => 'https://www.googleapis.com/auth/urlshortener')
|
||||
)
|
||||
);
|
||||
@@ -0,0 +1,567 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "directDeals" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $adexchangebuyerService = new Google_AdexchangebuyerService(...);
|
||||
* $directDeals = $adexchangebuyerService->directDeals;
|
||||
* </code>
|
||||
*/
|
||||
class Google_DirectDealsServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Retrieves the authenticated user's list of direct deals. (directDeals.list)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_DirectDealsList
|
||||
*/
|
||||
public function listDirectDeals($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_DirectDealsList($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Gets one direct deal by ID. (directDeals.get)
|
||||
*
|
||||
* @param string $id The direct deal id
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_DirectDeal
|
||||
*/
|
||||
public function get($id, $optParams = array()) {
|
||||
$params = array('id' => $id);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_DirectDeal($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The "accounts" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $adexchangebuyerService = new Google_AdexchangebuyerService(...);
|
||||
* $accounts = $adexchangebuyerService->accounts;
|
||||
* </code>
|
||||
*/
|
||||
class Google_AccountsServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Updates an existing account. This method supports patch semantics. (accounts.patch)
|
||||
*
|
||||
* @param int $id The account id
|
||||
* @param Google_Account $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Account
|
||||
*/
|
||||
public function patch($id, Google_Account $postBody, $optParams = array()) {
|
||||
$params = array('id' => $id, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('patch', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Account($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Retrieves the authenticated user's list of accounts. (accounts.list)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_AccountsList
|
||||
*/
|
||||
public function listAccounts($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_AccountsList($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Updates an existing account. (accounts.update)
|
||||
*
|
||||
* @param int $id The account id
|
||||
* @param Google_Account $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Account
|
||||
*/
|
||||
public function update($id, Google_Account $postBody, $optParams = array()) {
|
||||
$params = array('id' => $id, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('update', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Account($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Gets one account by ID. (accounts.get)
|
||||
*
|
||||
* @param int $id The account id
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Account
|
||||
*/
|
||||
public function get($id, $optParams = array()) {
|
||||
$params = array('id' => $id);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Account($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The "creatives" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $adexchangebuyerService = new Google_AdexchangebuyerService(...);
|
||||
* $creatives = $adexchangebuyerService->creatives;
|
||||
* </code>
|
||||
*/
|
||||
class Google_CreativesServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Submit a new creative. (creatives.insert)
|
||||
*
|
||||
* @param Google_Creative $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Creative
|
||||
*/
|
||||
public function insert(Google_Creative $postBody, $optParams = array()) {
|
||||
$params = array('postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('insert', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Creative($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Retrieves a list of the authenticated user's active creatives. (creatives.list)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string pageToken A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response. Optional.
|
||||
* @opt_param string maxResults Maximum number of entries returned on one result page. If not set, the default is 100. Optional.
|
||||
* @return Google_CreativesList
|
||||
*/
|
||||
public function listCreatives($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_CreativesList($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Gets the status for a single creative. (creatives.get)
|
||||
*
|
||||
* @param int $accountId The id for the account that will serve this creative.
|
||||
* @param string $buyerCreativeId The buyer-specific id for this creative.
|
||||
* @param string $adgroupId The adgroup this creative belongs to.
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Creative
|
||||
*/
|
||||
public function get($accountId, $buyerCreativeId, $adgroupId, $optParams = array()) {
|
||||
$params = array('accountId' => $accountId, 'buyerCreativeId' => $buyerCreativeId, 'adgroupId' => $adgroupId);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Creative($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Adexchangebuyer (v1).
|
||||
*
|
||||
* <p>
|
||||
* Lets you manage your Ad Exchange Buyer account.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="https://developers.google.com/ad-exchange/buyer-rest" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_AdexchangebuyerService extends Google_Service {
|
||||
public $directDeals;
|
||||
public $accounts;
|
||||
public $creatives;
|
||||
/**
|
||||
* Constructs the internal representation of the Adexchangebuyer service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'adexchangebuyer/v1/';
|
||||
$this->version = 'v1';
|
||||
$this->serviceName = 'adexchangebuyer';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->directDeals = new Google_DirectDealsServiceResource($this, $this->serviceName, 'directDeals', json_decode('{"methods": {"list": {"scopes": ["https://www.googleapis.com/auth/adexchange.buyer"], "path": "directdeals", "response": {"$ref": "DirectDealsList"}, "id": "adexchangebuyer.directDeals.list", "httpMethod": "GET"}, "get": {"scopes": ["https://www.googleapis.com/auth/adexchange.buyer"], "parameters": {"id": {"required": true, "type": "string", "location": "path", "format": "int64"}}, "id": "adexchangebuyer.directDeals.get", "httpMethod": "GET", "path": "directdeals/{id}", "response": {"$ref": "DirectDeal"}}}}', true));
|
||||
$this->accounts = new Google_AccountsServiceResource($this, $this->serviceName, 'accounts', json_decode('{"methods": {"patch": {"scopes": ["https://www.googleapis.com/auth/adexchange.buyer"], "parameters": {"id": {"required": true, "type": "integer", "location": "path", "format": "int32"}}, "request": {"$ref": "Account"}, "response": {"$ref": "Account"}, "httpMethod": "PATCH", "path": "accounts/{id}", "id": "adexchangebuyer.accounts.patch"}, "list": {"scopes": ["https://www.googleapis.com/auth/adexchange.buyer"], "path": "accounts", "response": {"$ref": "AccountsList"}, "id": "adexchangebuyer.accounts.list", "httpMethod": "GET"}, "update": {"scopes": ["https://www.googleapis.com/auth/adexchange.buyer"], "parameters": {"id": {"required": true, "type": "integer", "location": "path", "format": "int32"}}, "request": {"$ref": "Account"}, "response": {"$ref": "Account"}, "httpMethod": "PUT", "path": "accounts/{id}", "id": "adexchangebuyer.accounts.update"}, "get": {"scopes": ["https://www.googleapis.com/auth/adexchange.buyer"], "parameters": {"id": {"required": true, "type": "integer", "location": "path", "format": "int32"}}, "id": "adexchangebuyer.accounts.get", "httpMethod": "GET", "path": "accounts/{id}", "response": {"$ref": "Account"}}}}', true));
|
||||
$this->creatives = new Google_CreativesServiceResource($this, $this->serviceName, 'creatives', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/adexchange.buyer"], "request": {"$ref": "Creative"}, "response": {"$ref": "Creative"}, "httpMethod": "POST", "path": "creatives", "id": "adexchangebuyer.creatives.insert"}, "list": {"scopes": ["https://www.googleapis.com/auth/adexchange.buyer"], "parameters": {"pageToken": {"type": "string", "location": "query"}, "maxResults": {"location": "query", "minimum": "1", "type": "integer", "maximum": "1000", "format": "uint32"}}, "response": {"$ref": "CreativesList"}, "httpMethod": "GET", "path": "creatives", "id": "adexchangebuyer.creatives.list"}, "get": {"scopes": ["https://www.googleapis.com/auth/adexchange.buyer"], "parameters": {"adgroupId": {"required": true, "type": "string", "location": "query", "format": "int64"}, "buyerCreativeId": {"required": true, "type": "string", "location": "path"}, "accountId": {"required": true, "type": "integer", "location": "path", "format": "int32"}}, "id": "adexchangebuyer.creatives.get", "httpMethod": "GET", "path": "creatives/{accountId}/{buyerCreativeId}", "response": {"$ref": "Creative"}}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Account extends Google_Model {
|
||||
public $kind;
|
||||
public $maximumTotalQps;
|
||||
protected $__bidderLocationType = 'Google_AccountBidderLocation';
|
||||
protected $__bidderLocationDataType = 'array';
|
||||
public $bidderLocation;
|
||||
public $cookieMatchingNid;
|
||||
public $id;
|
||||
public $cookieMatchingUrl;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setMaximumTotalQps($maximumTotalQps) {
|
||||
$this->maximumTotalQps = $maximumTotalQps;
|
||||
}
|
||||
public function getMaximumTotalQps() {
|
||||
return $this->maximumTotalQps;
|
||||
}
|
||||
public function setBidderLocation($bidderLocation) {
|
||||
$this->assertIsArray($bidderLocation, 'Google_AccountBidderLocation', __METHOD__);
|
||||
$this->bidderLocation = $bidderLocation;
|
||||
}
|
||||
public function getBidderLocation() {
|
||||
return $this->bidderLocation;
|
||||
}
|
||||
public function setCookieMatchingNid($cookieMatchingNid) {
|
||||
$this->cookieMatchingNid = $cookieMatchingNid;
|
||||
}
|
||||
public function getCookieMatchingNid() {
|
||||
return $this->cookieMatchingNid;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
public function setCookieMatchingUrl($cookieMatchingUrl) {
|
||||
$this->cookieMatchingUrl = $cookieMatchingUrl;
|
||||
}
|
||||
public function getCookieMatchingUrl() {
|
||||
return $this->cookieMatchingUrl;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_AccountBidderLocation extends Google_Model {
|
||||
public $url;
|
||||
public $maximumQps;
|
||||
public function setUrl($url) {
|
||||
$this->url = $url;
|
||||
}
|
||||
public function getUrl() {
|
||||
return $this->url;
|
||||
}
|
||||
public function setMaximumQps($maximumQps) {
|
||||
$this->maximumQps = $maximumQps;
|
||||
}
|
||||
public function getMaximumQps() {
|
||||
return $this->maximumQps;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_AccountsList extends Google_Model {
|
||||
protected $__itemsType = 'Google_Account';
|
||||
protected $__itemsDataType = 'array';
|
||||
public $items;
|
||||
public $kind;
|
||||
public function setItems($items) {
|
||||
$this->assertIsArray($items, 'Google_Account', __METHOD__);
|
||||
$this->items = $items;
|
||||
}
|
||||
public function getItems() {
|
||||
return $this->items;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Creative extends Google_Model {
|
||||
public $productCategories;
|
||||
public $advertiserName;
|
||||
public $adgroupId;
|
||||
public $videoURL;
|
||||
public $width;
|
||||
public $attribute;
|
||||
public $kind;
|
||||
public $height;
|
||||
public $advertiserId;
|
||||
public $HTMLSnippet;
|
||||
public $status;
|
||||
public $buyerCreativeId;
|
||||
public $clickThroughUrl;
|
||||
public $vendorType;
|
||||
public $disapprovalReasons;
|
||||
public $sensitiveCategories;
|
||||
public $accountId;
|
||||
public function setProductCategories($productCategories) {
|
||||
$this->productCategories = $productCategories;
|
||||
}
|
||||
public function getProductCategories() {
|
||||
return $this->productCategories;
|
||||
}
|
||||
public function setAdvertiserName($advertiserName) {
|
||||
$this->advertiserName = $advertiserName;
|
||||
}
|
||||
public function getAdvertiserName() {
|
||||
return $this->advertiserName;
|
||||
}
|
||||
public function setAdgroupId($adgroupId) {
|
||||
$this->adgroupId = $adgroupId;
|
||||
}
|
||||
public function getAdgroupId() {
|
||||
return $this->adgroupId;
|
||||
}
|
||||
public function setVideoURL($videoURL) {
|
||||
$this->videoURL = $videoURL;
|
||||
}
|
||||
public function getVideoURL() {
|
||||
return $this->videoURL;
|
||||
}
|
||||
public function setWidth($width) {
|
||||
$this->width = $width;
|
||||
}
|
||||
public function getWidth() {
|
||||
return $this->width;
|
||||
}
|
||||
public function setAttribute($attribute) {
|
||||
$this->attribute = $attribute;
|
||||
}
|
||||
public function getAttribute() {
|
||||
return $this->attribute;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setHeight($height) {
|
||||
$this->height = $height;
|
||||
}
|
||||
public function getHeight() {
|
||||
return $this->height;
|
||||
}
|
||||
public function setAdvertiserId($advertiserId) {
|
||||
$this->advertiserId = $advertiserId;
|
||||
}
|
||||
public function getAdvertiserId() {
|
||||
return $this->advertiserId;
|
||||
}
|
||||
public function setHTMLSnippet($HTMLSnippet) {
|
||||
$this->HTMLSnippet = $HTMLSnippet;
|
||||
}
|
||||
public function getHTMLSnippet() {
|
||||
return $this->HTMLSnippet;
|
||||
}
|
||||
public function setStatus($status) {
|
||||
$this->status = $status;
|
||||
}
|
||||
public function getStatus() {
|
||||
return $this->status;
|
||||
}
|
||||
public function setBuyerCreativeId($buyerCreativeId) {
|
||||
$this->buyerCreativeId = $buyerCreativeId;
|
||||
}
|
||||
public function getBuyerCreativeId() {
|
||||
return $this->buyerCreativeId;
|
||||
}
|
||||
public function setClickThroughUrl($clickThroughUrl) {
|
||||
$this->clickThroughUrl = $clickThroughUrl;
|
||||
}
|
||||
public function getClickThroughUrl() {
|
||||
return $this->clickThroughUrl;
|
||||
}
|
||||
public function setVendorType($vendorType) {
|
||||
$this->vendorType = $vendorType;
|
||||
}
|
||||
public function getVendorType() {
|
||||
return $this->vendorType;
|
||||
}
|
||||
public function setDisapprovalReasons($disapprovalReasons) {
|
||||
$this->disapprovalReasons = $disapprovalReasons;
|
||||
}
|
||||
public function getDisapprovalReasons() {
|
||||
return $this->disapprovalReasons;
|
||||
}
|
||||
public function setSensitiveCategories($sensitiveCategories) {
|
||||
$this->sensitiveCategories = $sensitiveCategories;
|
||||
}
|
||||
public function getSensitiveCategories() {
|
||||
return $this->sensitiveCategories;
|
||||
}
|
||||
public function setAccountId($accountId) {
|
||||
$this->accountId = $accountId;
|
||||
}
|
||||
public function getAccountId() {
|
||||
return $this->accountId;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_CreativesList extends Google_Model {
|
||||
public $nextPageToken;
|
||||
protected $__itemsType = 'Google_Creative';
|
||||
protected $__itemsDataType = 'array';
|
||||
public $items;
|
||||
public $kind;
|
||||
public function setNextPageToken($nextPageToken) {
|
||||
$this->nextPageToken = $nextPageToken;
|
||||
}
|
||||
public function getNextPageToken() {
|
||||
return $this->nextPageToken;
|
||||
}
|
||||
public function setItems($items) {
|
||||
$this->assertIsArray($items, 'Google_Creative', __METHOD__);
|
||||
$this->items = $items;
|
||||
}
|
||||
public function getItems() {
|
||||
return $this->items;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_DirectDeal extends Google_Model {
|
||||
public $advertiser;
|
||||
public $kind;
|
||||
public $currencyCode;
|
||||
public $fixedCpm;
|
||||
public $startTime;
|
||||
public $endTime;
|
||||
public $sellerNetwork;
|
||||
public $id;
|
||||
public $accountId;
|
||||
public function setAdvertiser($advertiser) {
|
||||
$this->advertiser = $advertiser;
|
||||
}
|
||||
public function getAdvertiser() {
|
||||
return $this->advertiser;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setCurrencyCode($currencyCode) {
|
||||
$this->currencyCode = $currencyCode;
|
||||
}
|
||||
public function getCurrencyCode() {
|
||||
return $this->currencyCode;
|
||||
}
|
||||
public function setFixedCpm($fixedCpm) {
|
||||
$this->fixedCpm = $fixedCpm;
|
||||
}
|
||||
public function getFixedCpm() {
|
||||
return $this->fixedCpm;
|
||||
}
|
||||
public function setStartTime($startTime) {
|
||||
$this->startTime = $startTime;
|
||||
}
|
||||
public function getStartTime() {
|
||||
return $this->startTime;
|
||||
}
|
||||
public function setEndTime($endTime) {
|
||||
$this->endTime = $endTime;
|
||||
}
|
||||
public function getEndTime() {
|
||||
return $this->endTime;
|
||||
}
|
||||
public function setSellerNetwork($sellerNetwork) {
|
||||
$this->sellerNetwork = $sellerNetwork;
|
||||
}
|
||||
public function getSellerNetwork() {
|
||||
return $this->sellerNetwork;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
public function setAccountId($accountId) {
|
||||
$this->accountId = $accountId;
|
||||
}
|
||||
public function getAccountId() {
|
||||
return $this->accountId;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_DirectDealsList extends Google_Model {
|
||||
public $kind;
|
||||
protected $__directDealsType = 'Google_DirectDeal';
|
||||
protected $__directDealsDataType = 'array';
|
||||
public $directDeals;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setDirectDeals($directDeals) {
|
||||
$this->assertIsArray($directDeals, 'Google_DirectDeal', __METHOD__);
|
||||
$this->directDeals = $directDeals;
|
||||
}
|
||||
public function getDirectDeals() {
|
||||
return $this->directDeals;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,836 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "cse" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $customsearchService = new Google_CustomsearchService(...);
|
||||
* $cse = $customsearchService->cse;
|
||||
* </code>
|
||||
*/
|
||||
class Google_CseServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Returns metadata about the search performed, metadata about the custom search engine used for the
|
||||
* search, and the search results. (cse.list)
|
||||
*
|
||||
* @param string $q Query
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string sort The sort expression to apply to the results
|
||||
* @opt_param string orTerms Provides additional search terms to check for in a document, where each document in the search results must contain at least one of the additional search terms
|
||||
* @opt_param string highRange Creates a range in form as_nlo value..as_nhi value and attempts to append it to query
|
||||
* @opt_param string num Number of search results to return
|
||||
* @opt_param string cr Country restrict(s).
|
||||
* @opt_param string imgType Returns images of a type, which can be one of: clipart, face, lineart, news, and photo.
|
||||
* @opt_param string gl Geolocation of end user.
|
||||
* @opt_param string relatedSite Specifies that all search results should be pages that are related to the specified URL
|
||||
* @opt_param string searchType Specifies the search type: image.
|
||||
* @opt_param string fileType Returns images of a specified type. Some of the allowed values are: bmp, gif, png, jpg, svg, pdf, ...
|
||||
* @opt_param string start The index of the first result to return
|
||||
* @opt_param string imgDominantColor Returns images of a specific dominant color: yellow, green, teal, blue, purple, pink, white, gray, black and brown.
|
||||
* @opt_param string lr The language restriction for the search results
|
||||
* @opt_param string siteSearch Specifies all search results should be pages from a given site
|
||||
* @opt_param string cref The URL of a linked custom search engine
|
||||
* @opt_param string dateRestrict Specifies all search results are from a time period
|
||||
* @opt_param string safe Search safety level
|
||||
* @opt_param string c2coff Turns off the translation between zh-CN and zh-TW.
|
||||
* @opt_param string googlehost The local Google domain to use to perform the search.
|
||||
* @opt_param string hq Appends the extra query terms to the query.
|
||||
* @opt_param string exactTerms Identifies a phrase that all documents in the search results must contain
|
||||
* @opt_param string hl Sets the user interface language.
|
||||
* @opt_param string lowRange Creates a range in form as_nlo value..as_nhi value and attempts to append it to query
|
||||
* @opt_param string imgSize Returns images of a specified size, where size can be one of: icon, small, medium, large, xlarge, xxlarge, and huge.
|
||||
* @opt_param string imgColorType Returns black and white, grayscale, or color images: mono, gray, and color.
|
||||
* @opt_param string rights Filters based on licensing. Supported values include: cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived and combinations of these.
|
||||
* @opt_param string excludeTerms Identifies a word or phrase that should not appear in any documents in the search results
|
||||
* @opt_param string filter Controls turning on or off the duplicate content filter.
|
||||
* @opt_param string linkSite Specifies that all search results should contain a link to a particular URL
|
||||
* @opt_param string cx The custom search engine ID to scope this search query
|
||||
* @opt_param string siteSearchFilter Controls whether to include or exclude results from the site named in the as_sitesearch parameter
|
||||
* @return Google_Search
|
||||
*/
|
||||
public function listCse($q, $optParams = array()) {
|
||||
$params = array('q' => $q);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Search($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Customsearch (v1).
|
||||
*
|
||||
* <p>
|
||||
* Lets you search over a website or collection of websites
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="http://code.google.com/apis/customsearch/v1/using_rest.html" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_CustomsearchService extends Google_Service {
|
||||
public $cse;
|
||||
/**
|
||||
* Constructs the internal representation of the Customsearch service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'customsearch/';
|
||||
$this->version = 'v1';
|
||||
$this->serviceName = 'customsearch';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->cse = new Google_CseServiceResource($this, $this->serviceName, 'cse', json_decode('{"methods": {"list": {"httpMethod": "GET", "response": {"$ref": "Search"}, "id": "search.cse.list", "parameters": {"sort": {"type": "string", "location": "query"}, "orTerms": {"type": "string", "location": "query"}, "highRange": {"type": "string", "location": "query"}, "num": {"default": "10", "type": "integer", "location": "query", "format": "uint32"}, "cr": {"type": "string", "location": "query"}, "imgType": {"enum": ["clipart", "face", "lineart", "news", "photo"], "type": "string", "location": "query"}, "gl": {"type": "string", "location": "query"}, "q": {"required": true, "type": "string", "location": "query"}, "relatedSite": {"type": "string", "location": "query"}, "searchType": {"enum": ["image"], "type": "string", "location": "query"}, "fileType": {"type": "string", "location": "query"}, "start": {"type": "integer", "location": "query", "format": "uint32"}, "imgDominantColor": {"enum": ["black", "blue", "brown", "gray", "green", "pink", "purple", "teal", "white", "yellow"], "type": "string", "location": "query"}, "lr": {"enum": ["lang_ar", "lang_bg", "lang_ca", "lang_cs", "lang_da", "lang_de", "lang_el", "lang_en", "lang_es", "lang_et", "lang_fi", "lang_fr", "lang_hr", "lang_hu", "lang_id", "lang_is", "lang_it", "lang_iw", "lang_ja", "lang_ko", "lang_lt", "lang_lv", "lang_nl", "lang_no", "lang_pl", "lang_pt", "lang_ro", "lang_ru", "lang_sk", "lang_sl", "lang_sr", "lang_sv", "lang_tr", "lang_zh-CN", "lang_zh-TW"], "type": "string", "location": "query"}, "siteSearch": {"type": "string", "location": "query"}, "cref": {"type": "string", "location": "query"}, "dateRestrict": {"type": "string", "location": "query"}, "safe": {"default": "off", "enum": ["high", "medium", "off"], "type": "string", "location": "query"}, "c2coff": {"type": "string", "location": "query"}, "googlehost": {"type": "string", "location": "query"}, "hq": {"type": "string", "location": "query"}, "exactTerms": {"type": "string", "location": "query"}, "hl": {"type": "string", "location": "query"}, "lowRange": {"type": "string", "location": "query"}, "imgSize": {"enum": ["huge", "icon", "large", "medium", "small", "xlarge", "xxlarge"], "type": "string", "location": "query"}, "imgColorType": {"enum": ["color", "gray", "mono"], "type": "string", "location": "query"}, "rights": {"type": "string", "location": "query"}, "excludeTerms": {"type": "string", "location": "query"}, "filter": {"enum": ["0", "1"], "type": "string", "location": "query"}, "linkSite": {"type": "string", "location": "query"}, "cx": {"type": "string", "location": "query"}, "siteSearchFilter": {"enum": ["e", "i"], "type": "string", "location": "query"}}, "path": "v1"}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Context extends Google_Model {
|
||||
protected $__facetsType = 'Google_ContextFacets';
|
||||
protected $__facetsDataType = 'array';
|
||||
public $facets;
|
||||
public $title;
|
||||
public function setFacets(/* array(Google_ContextFacets) */ $facets) {
|
||||
$this->assertIsArray($facets, 'Google_ContextFacets', __METHOD__);
|
||||
$this->facets = $facets;
|
||||
}
|
||||
public function getFacets() {
|
||||
return $this->facets;
|
||||
}
|
||||
public function setTitle($title) {
|
||||
$this->title = $title;
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->title;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ContextFacets extends Google_Model {
|
||||
public $anchor;
|
||||
public $label;
|
||||
public function setAnchor($anchor) {
|
||||
$this->anchor = $anchor;
|
||||
}
|
||||
public function getAnchor() {
|
||||
return $this->anchor;
|
||||
}
|
||||
public function setLabel($label) {
|
||||
$this->label = $label;
|
||||
}
|
||||
public function getLabel() {
|
||||
return $this->label;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Promotion extends Google_Model {
|
||||
public $title;
|
||||
public $displayLink;
|
||||
public $htmlTitle;
|
||||
public $link;
|
||||
protected $__bodyLinesType = 'Google_PromotionBodyLines';
|
||||
protected $__bodyLinesDataType = 'array';
|
||||
public $bodyLines;
|
||||
protected $__imageType = 'Google_PromotionImage';
|
||||
protected $__imageDataType = '';
|
||||
public $image;
|
||||
public function setTitle($title) {
|
||||
$this->title = $title;
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->title;
|
||||
}
|
||||
public function setDisplayLink($displayLink) {
|
||||
$this->displayLink = $displayLink;
|
||||
}
|
||||
public function getDisplayLink() {
|
||||
return $this->displayLink;
|
||||
}
|
||||
public function setHtmlTitle($htmlTitle) {
|
||||
$this->htmlTitle = $htmlTitle;
|
||||
}
|
||||
public function getHtmlTitle() {
|
||||
return $this->htmlTitle;
|
||||
}
|
||||
public function setLink($link) {
|
||||
$this->link = $link;
|
||||
}
|
||||
public function getLink() {
|
||||
return $this->link;
|
||||
}
|
||||
public function setBodyLines(/* array(Google_PromotionBodyLines) */ $bodyLines) {
|
||||
$this->assertIsArray($bodyLines, 'Google_PromotionBodyLines', __METHOD__);
|
||||
$this->bodyLines = $bodyLines;
|
||||
}
|
||||
public function getBodyLines() {
|
||||
return $this->bodyLines;
|
||||
}
|
||||
public function setImage(Google_PromotionImage $image) {
|
||||
$this->image = $image;
|
||||
}
|
||||
public function getImage() {
|
||||
return $this->image;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_PromotionBodyLines extends Google_Model {
|
||||
public $url;
|
||||
public $htmlTitle;
|
||||
public $link;
|
||||
public $title;
|
||||
public function setUrl($url) {
|
||||
$this->url = $url;
|
||||
}
|
||||
public function getUrl() {
|
||||
return $this->url;
|
||||
}
|
||||
public function setHtmlTitle($htmlTitle) {
|
||||
$this->htmlTitle = $htmlTitle;
|
||||
}
|
||||
public function getHtmlTitle() {
|
||||
return $this->htmlTitle;
|
||||
}
|
||||
public function setLink($link) {
|
||||
$this->link = $link;
|
||||
}
|
||||
public function getLink() {
|
||||
return $this->link;
|
||||
}
|
||||
public function setTitle($title) {
|
||||
$this->title = $title;
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->title;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_PromotionImage extends Google_Model {
|
||||
public $source;
|
||||
public $width;
|
||||
public $height;
|
||||
public function setSource($source) {
|
||||
$this->source = $source;
|
||||
}
|
||||
public function getSource() {
|
||||
return $this->source;
|
||||
}
|
||||
public function setWidth($width) {
|
||||
$this->width = $width;
|
||||
}
|
||||
public function getWidth() {
|
||||
return $this->width;
|
||||
}
|
||||
public function setHeight($height) {
|
||||
$this->height = $height;
|
||||
}
|
||||
public function getHeight() {
|
||||
return $this->height;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Query extends Google_Model {
|
||||
public $sort;
|
||||
public $inputEncoding;
|
||||
public $orTerms;
|
||||
public $highRange;
|
||||
public $cx;
|
||||
public $startPage;
|
||||
public $disableCnTwTranslation;
|
||||
public $cr;
|
||||
public $imgType;
|
||||
public $gl;
|
||||
public $relatedSite;
|
||||
public $searchType;
|
||||
public $title;
|
||||
public $googleHost;
|
||||
public $fileType;
|
||||
public $imgDominantColor;
|
||||
public $siteSearch;
|
||||
public $cref;
|
||||
public $dateRestrict;
|
||||
public $safe;
|
||||
public $outputEncoding;
|
||||
public $hq;
|
||||
public $searchTerms;
|
||||
public $exactTerms;
|
||||
public $language;
|
||||
public $hl;
|
||||
public $totalResults;
|
||||
public $lowRange;
|
||||
public $count;
|
||||
public $imgSize;
|
||||
public $imgColorType;
|
||||
public $rights;
|
||||
public $startIndex;
|
||||
public $excludeTerms;
|
||||
public $filter;
|
||||
public $linkSite;
|
||||
public $siteSearchFilter;
|
||||
public function setSort($sort) {
|
||||
$this->sort = $sort;
|
||||
}
|
||||
public function getSort() {
|
||||
return $this->sort;
|
||||
}
|
||||
public function setInputEncoding($inputEncoding) {
|
||||
$this->inputEncoding = $inputEncoding;
|
||||
}
|
||||
public function getInputEncoding() {
|
||||
return $this->inputEncoding;
|
||||
}
|
||||
public function setOrTerms($orTerms) {
|
||||
$this->orTerms = $orTerms;
|
||||
}
|
||||
public function getOrTerms() {
|
||||
return $this->orTerms;
|
||||
}
|
||||
public function setHighRange($highRange) {
|
||||
$this->highRange = $highRange;
|
||||
}
|
||||
public function getHighRange() {
|
||||
return $this->highRange;
|
||||
}
|
||||
public function setCx($cx) {
|
||||
$this->cx = $cx;
|
||||
}
|
||||
public function getCx() {
|
||||
return $this->cx;
|
||||
}
|
||||
public function setStartPage($startPage) {
|
||||
$this->startPage = $startPage;
|
||||
}
|
||||
public function getStartPage() {
|
||||
return $this->startPage;
|
||||
}
|
||||
public function setDisableCnTwTranslation($disableCnTwTranslation) {
|
||||
$this->disableCnTwTranslation = $disableCnTwTranslation;
|
||||
}
|
||||
public function getDisableCnTwTranslation() {
|
||||
return $this->disableCnTwTranslation;
|
||||
}
|
||||
public function setCr($cr) {
|
||||
$this->cr = $cr;
|
||||
}
|
||||
public function getCr() {
|
||||
return $this->cr;
|
||||
}
|
||||
public function setImgType($imgType) {
|
||||
$this->imgType = $imgType;
|
||||
}
|
||||
public function getImgType() {
|
||||
return $this->imgType;
|
||||
}
|
||||
public function setGl($gl) {
|
||||
$this->gl = $gl;
|
||||
}
|
||||
public function getGl() {
|
||||
return $this->gl;
|
||||
}
|
||||
public function setRelatedSite($relatedSite) {
|
||||
$this->relatedSite = $relatedSite;
|
||||
}
|
||||
public function getRelatedSite() {
|
||||
return $this->relatedSite;
|
||||
}
|
||||
public function setSearchType($searchType) {
|
||||
$this->searchType = $searchType;
|
||||
}
|
||||
public function getSearchType() {
|
||||
return $this->searchType;
|
||||
}
|
||||
public function setTitle($title) {
|
||||
$this->title = $title;
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->title;
|
||||
}
|
||||
public function setGoogleHost($googleHost) {
|
||||
$this->googleHost = $googleHost;
|
||||
}
|
||||
public function getGoogleHost() {
|
||||
return $this->googleHost;
|
||||
}
|
||||
public function setFileType($fileType) {
|
||||
$this->fileType = $fileType;
|
||||
}
|
||||
public function getFileType() {
|
||||
return $this->fileType;
|
||||
}
|
||||
public function setImgDominantColor($imgDominantColor) {
|
||||
$this->imgDominantColor = $imgDominantColor;
|
||||
}
|
||||
public function getImgDominantColor() {
|
||||
return $this->imgDominantColor;
|
||||
}
|
||||
public function setSiteSearch($siteSearch) {
|
||||
$this->siteSearch = $siteSearch;
|
||||
}
|
||||
public function getSiteSearch() {
|
||||
return $this->siteSearch;
|
||||
}
|
||||
public function setCref($cref) {
|
||||
$this->cref = $cref;
|
||||
}
|
||||
public function getCref() {
|
||||
return $this->cref;
|
||||
}
|
||||
public function setDateRestrict($dateRestrict) {
|
||||
$this->dateRestrict = $dateRestrict;
|
||||
}
|
||||
public function getDateRestrict() {
|
||||
return $this->dateRestrict;
|
||||
}
|
||||
public function setSafe($safe) {
|
||||
$this->safe = $safe;
|
||||
}
|
||||
public function getSafe() {
|
||||
return $this->safe;
|
||||
}
|
||||
public function setOutputEncoding($outputEncoding) {
|
||||
$this->outputEncoding = $outputEncoding;
|
||||
}
|
||||
public function getOutputEncoding() {
|
||||
return $this->outputEncoding;
|
||||
}
|
||||
public function setHq($hq) {
|
||||
$this->hq = $hq;
|
||||
}
|
||||
public function getHq() {
|
||||
return $this->hq;
|
||||
}
|
||||
public function setSearchTerms($searchTerms) {
|
||||
$this->searchTerms = $searchTerms;
|
||||
}
|
||||
public function getSearchTerms() {
|
||||
return $this->searchTerms;
|
||||
}
|
||||
public function setExactTerms($exactTerms) {
|
||||
$this->exactTerms = $exactTerms;
|
||||
}
|
||||
public function getExactTerms() {
|
||||
return $this->exactTerms;
|
||||
}
|
||||
public function setLanguage($language) {
|
||||
$this->language = $language;
|
||||
}
|
||||
public function getLanguage() {
|
||||
return $this->language;
|
||||
}
|
||||
public function setHl($hl) {
|
||||
$this->hl = $hl;
|
||||
}
|
||||
public function getHl() {
|
||||
return $this->hl;
|
||||
}
|
||||
public function setTotalResults($totalResults) {
|
||||
$this->totalResults = $totalResults;
|
||||
}
|
||||
public function getTotalResults() {
|
||||
return $this->totalResults;
|
||||
}
|
||||
public function setLowRange($lowRange) {
|
||||
$this->lowRange = $lowRange;
|
||||
}
|
||||
public function getLowRange() {
|
||||
return $this->lowRange;
|
||||
}
|
||||
public function setCount($count) {
|
||||
$this->count = $count;
|
||||
}
|
||||
public function getCount() {
|
||||
return $this->count;
|
||||
}
|
||||
public function setImgSize($imgSize) {
|
||||
$this->imgSize = $imgSize;
|
||||
}
|
||||
public function getImgSize() {
|
||||
return $this->imgSize;
|
||||
}
|
||||
public function setImgColorType($imgColorType) {
|
||||
$this->imgColorType = $imgColorType;
|
||||
}
|
||||
public function getImgColorType() {
|
||||
return $this->imgColorType;
|
||||
}
|
||||
public function setRights($rights) {
|
||||
$this->rights = $rights;
|
||||
}
|
||||
public function getRights() {
|
||||
return $this->rights;
|
||||
}
|
||||
public function setStartIndex($startIndex) {
|
||||
$this->startIndex = $startIndex;
|
||||
}
|
||||
public function getStartIndex() {
|
||||
return $this->startIndex;
|
||||
}
|
||||
public function setExcludeTerms($excludeTerms) {
|
||||
$this->excludeTerms = $excludeTerms;
|
||||
}
|
||||
public function getExcludeTerms() {
|
||||
return $this->excludeTerms;
|
||||
}
|
||||
public function setFilter($filter) {
|
||||
$this->filter = $filter;
|
||||
}
|
||||
public function getFilter() {
|
||||
return $this->filter;
|
||||
}
|
||||
public function setLinkSite($linkSite) {
|
||||
$this->linkSite = $linkSite;
|
||||
}
|
||||
public function getLinkSite() {
|
||||
return $this->linkSite;
|
||||
}
|
||||
public function setSiteSearchFilter($siteSearchFilter) {
|
||||
$this->siteSearchFilter = $siteSearchFilter;
|
||||
}
|
||||
public function getSiteSearchFilter() {
|
||||
return $this->siteSearchFilter;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Result extends Google_Model {
|
||||
public $snippet;
|
||||
public $kind;
|
||||
protected $__labelsType = 'Google_ResultLabels';
|
||||
protected $__labelsDataType = 'array';
|
||||
public $labels;
|
||||
public $title;
|
||||
public $displayLink;
|
||||
public $cacheId;
|
||||
public $formattedUrl;
|
||||
public $htmlFormattedUrl;
|
||||
public $pagemap;
|
||||
public $htmlTitle;
|
||||
public $htmlSnippet;
|
||||
public $link;
|
||||
protected $__imageType = 'Google_ResultImage';
|
||||
protected $__imageDataType = '';
|
||||
public $image;
|
||||
public $mime;
|
||||
public $fileFormat;
|
||||
public function setSnippet($snippet) {
|
||||
$this->snippet = $snippet;
|
||||
}
|
||||
public function getSnippet() {
|
||||
return $this->snippet;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setLabels(/* array(Google_ResultLabels) */ $labels) {
|
||||
$this->assertIsArray($labels, 'Google_ResultLabels', __METHOD__);
|
||||
$this->labels = $labels;
|
||||
}
|
||||
public function getLabels() {
|
||||
return $this->labels;
|
||||
}
|
||||
public function setTitle($title) {
|
||||
$this->title = $title;
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->title;
|
||||
}
|
||||
public function setDisplayLink($displayLink) {
|
||||
$this->displayLink = $displayLink;
|
||||
}
|
||||
public function getDisplayLink() {
|
||||
return $this->displayLink;
|
||||
}
|
||||
public function setCacheId($cacheId) {
|
||||
$this->cacheId = $cacheId;
|
||||
}
|
||||
public function getCacheId() {
|
||||
return $this->cacheId;
|
||||
}
|
||||
public function setFormattedUrl($formattedUrl) {
|
||||
$this->formattedUrl = $formattedUrl;
|
||||
}
|
||||
public function getFormattedUrl() {
|
||||
return $this->formattedUrl;
|
||||
}
|
||||
public function setHtmlFormattedUrl($htmlFormattedUrl) {
|
||||
$this->htmlFormattedUrl = $htmlFormattedUrl;
|
||||
}
|
||||
public function getHtmlFormattedUrl() {
|
||||
return $this->htmlFormattedUrl;
|
||||
}
|
||||
public function setPagemap($pagemap) {
|
||||
$this->pagemap = $pagemap;
|
||||
}
|
||||
public function getPagemap() {
|
||||
return $this->pagemap;
|
||||
}
|
||||
public function setHtmlTitle($htmlTitle) {
|
||||
$this->htmlTitle = $htmlTitle;
|
||||
}
|
||||
public function getHtmlTitle() {
|
||||
return $this->htmlTitle;
|
||||
}
|
||||
public function setHtmlSnippet($htmlSnippet) {
|
||||
$this->htmlSnippet = $htmlSnippet;
|
||||
}
|
||||
public function getHtmlSnippet() {
|
||||
return $this->htmlSnippet;
|
||||
}
|
||||
public function setLink($link) {
|
||||
$this->link = $link;
|
||||
}
|
||||
public function getLink() {
|
||||
return $this->link;
|
||||
}
|
||||
public function setImage(Google_ResultImage $image) {
|
||||
$this->image = $image;
|
||||
}
|
||||
public function getImage() {
|
||||
return $this->image;
|
||||
}
|
||||
public function setMime($mime) {
|
||||
$this->mime = $mime;
|
||||
}
|
||||
public function getMime() {
|
||||
return $this->mime;
|
||||
}
|
||||
public function setFileFormat($fileFormat) {
|
||||
$this->fileFormat = $fileFormat;
|
||||
}
|
||||
public function getFileFormat() {
|
||||
return $this->fileFormat;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultImage extends Google_Model {
|
||||
public $thumbnailWidth;
|
||||
public $byteSize;
|
||||
public $height;
|
||||
public $width;
|
||||
public $contextLink;
|
||||
public $thumbnailLink;
|
||||
public $thumbnailHeight;
|
||||
public function setThumbnailWidth($thumbnailWidth) {
|
||||
$this->thumbnailWidth = $thumbnailWidth;
|
||||
}
|
||||
public function getThumbnailWidth() {
|
||||
return $this->thumbnailWidth;
|
||||
}
|
||||
public function setByteSize($byteSize) {
|
||||
$this->byteSize = $byteSize;
|
||||
}
|
||||
public function getByteSize() {
|
||||
return $this->byteSize;
|
||||
}
|
||||
public function setHeight($height) {
|
||||
$this->height = $height;
|
||||
}
|
||||
public function getHeight() {
|
||||
return $this->height;
|
||||
}
|
||||
public function setWidth($width) {
|
||||
$this->width = $width;
|
||||
}
|
||||
public function getWidth() {
|
||||
return $this->width;
|
||||
}
|
||||
public function setContextLink($contextLink) {
|
||||
$this->contextLink = $contextLink;
|
||||
}
|
||||
public function getContextLink() {
|
||||
return $this->contextLink;
|
||||
}
|
||||
public function setThumbnailLink($thumbnailLink) {
|
||||
$this->thumbnailLink = $thumbnailLink;
|
||||
}
|
||||
public function getThumbnailLink() {
|
||||
return $this->thumbnailLink;
|
||||
}
|
||||
public function setThumbnailHeight($thumbnailHeight) {
|
||||
$this->thumbnailHeight = $thumbnailHeight;
|
||||
}
|
||||
public function getThumbnailHeight() {
|
||||
return $this->thumbnailHeight;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultLabels extends Google_Model {
|
||||
public $displayName;
|
||||
public $name;
|
||||
public function setDisplayName($displayName) {
|
||||
$this->displayName = $displayName;
|
||||
}
|
||||
public function getDisplayName() {
|
||||
return $this->displayName;
|
||||
}
|
||||
public function setName($name) {
|
||||
$this->name = $name;
|
||||
}
|
||||
public function getName() {
|
||||
return $this->name;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Search extends Google_Model {
|
||||
protected $__promotionsType = 'Google_Promotion';
|
||||
protected $__promotionsDataType = 'array';
|
||||
public $promotions;
|
||||
public $kind;
|
||||
protected $__urlType = 'Google_SearchUrl';
|
||||
protected $__urlDataType = '';
|
||||
public $url;
|
||||
protected $__itemsType = 'Google_Result';
|
||||
protected $__itemsDataType = 'array';
|
||||
public $items;
|
||||
protected $__contextType = 'Google_Context';
|
||||
protected $__contextDataType = '';
|
||||
public $context;
|
||||
protected $__queriesType = 'Google_Query';
|
||||
protected $__queriesDataType = 'map';
|
||||
public $queries;
|
||||
protected $__spellingType = 'Google_SearchSpelling';
|
||||
protected $__spellingDataType = '';
|
||||
public $spelling;
|
||||
protected $__searchInformationType = 'Google_SearchSearchInformation';
|
||||
protected $__searchInformationDataType = '';
|
||||
public $searchInformation;
|
||||
public function setPromotions(/* array(Google_Promotion) */ $promotions) {
|
||||
$this->assertIsArray($promotions, 'Google_Promotion', __METHOD__);
|
||||
$this->promotions = $promotions;
|
||||
}
|
||||
public function getPromotions() {
|
||||
return $this->promotions;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setUrl(Google_SearchUrl $url) {
|
||||
$this->url = $url;
|
||||
}
|
||||
public function getUrl() {
|
||||
return $this->url;
|
||||
}
|
||||
public function setItems(/* array(Google_Result) */ $items) {
|
||||
$this->assertIsArray($items, 'Google_Result', __METHOD__);
|
||||
$this->items = $items;
|
||||
}
|
||||
public function getItems() {
|
||||
return $this->items;
|
||||
}
|
||||
public function setContext(Google_Context $context) {
|
||||
$this->context = $context;
|
||||
}
|
||||
public function getContext() {
|
||||
return $this->context;
|
||||
}
|
||||
public function setQueries(Google_Query $queries) {
|
||||
$this->queries = $queries;
|
||||
}
|
||||
public function getQueries() {
|
||||
return $this->queries;
|
||||
}
|
||||
public function setSpelling(Google_SearchSpelling $spelling) {
|
||||
$this->spelling = $spelling;
|
||||
}
|
||||
public function getSpelling() {
|
||||
return $this->spelling;
|
||||
}
|
||||
public function setSearchInformation(Google_SearchSearchInformation $searchInformation) {
|
||||
$this->searchInformation = $searchInformation;
|
||||
}
|
||||
public function getSearchInformation() {
|
||||
return $this->searchInformation;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_SearchSearchInformation extends Google_Model {
|
||||
public $formattedSearchTime;
|
||||
public $formattedTotalResults;
|
||||
public $totalResults;
|
||||
public $searchTime;
|
||||
public function setFormattedSearchTime($formattedSearchTime) {
|
||||
$this->formattedSearchTime = $formattedSearchTime;
|
||||
}
|
||||
public function getFormattedSearchTime() {
|
||||
return $this->formattedSearchTime;
|
||||
}
|
||||
public function setFormattedTotalResults($formattedTotalResults) {
|
||||
$this->formattedTotalResults = $formattedTotalResults;
|
||||
}
|
||||
public function getFormattedTotalResults() {
|
||||
return $this->formattedTotalResults;
|
||||
}
|
||||
public function setTotalResults($totalResults) {
|
||||
$this->totalResults = $totalResults;
|
||||
}
|
||||
public function getTotalResults() {
|
||||
return $this->totalResults;
|
||||
}
|
||||
public function setSearchTime($searchTime) {
|
||||
$this->searchTime = $searchTime;
|
||||
}
|
||||
public function getSearchTime() {
|
||||
return $this->searchTime;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_SearchSpelling extends Google_Model {
|
||||
public $correctedQuery;
|
||||
public $htmlCorrectedQuery;
|
||||
public function setCorrectedQuery($correctedQuery) {
|
||||
$this->correctedQuery = $correctedQuery;
|
||||
}
|
||||
public function getCorrectedQuery() {
|
||||
return $this->correctedQuery;
|
||||
}
|
||||
public function setHtmlCorrectedQuery($htmlCorrectedQuery) {
|
||||
$this->htmlCorrectedQuery = $htmlCorrectedQuery;
|
||||
}
|
||||
public function getHtmlCorrectedQuery() {
|
||||
return $this->htmlCorrectedQuery;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_SearchUrl extends Google_Model {
|
||||
public $type;
|
||||
public $template;
|
||||
public function setType($type) {
|
||||
$this->type = $type;
|
||||
}
|
||||
public function getType() {
|
||||
return $this->type;
|
||||
}
|
||||
public function setTemplate($template) {
|
||||
$this->template = $template;
|
||||
}
|
||||
public function getTemplate() {
|
||||
return $this->template;
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "text" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $freebaseService = new Google_FreebaseService(...);
|
||||
* $text = $freebaseService->text;
|
||||
* </code>
|
||||
*/
|
||||
class Google_TextServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Returns blob attached to node at specified id as HTML (text.get)
|
||||
*
|
||||
* @param string $id The id of the item that you want data about
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string maxlength The max number of characters to return. Valid only for 'plain' format.
|
||||
* @opt_param string format Sanitizing transformation.
|
||||
* @return Google_ContentserviceGet
|
||||
*/
|
||||
public function get($id, $optParams = array()) {
|
||||
$params = array('id' => $id);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_ContentserviceGet($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Freebase (v1).
|
||||
*
|
||||
* <p>
|
||||
* Lets you access the Freebase repository of open data.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="http://wiki.freebase.com/wiki/API" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_FreebaseService extends Google_Service {
|
||||
public $text;
|
||||
/**
|
||||
* Constructs the internal representation of the Freebase service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'freebase/v1/';
|
||||
$this->version = 'v1';
|
||||
$this->serviceName = 'freebase';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->text = new Google_TextServiceResource($this, $this->serviceName, 'text', json_decode('{"methods": {"get": {"httpMethod": "GET", "response": {"$ref": "ContentserviceGet"}, "id": "freebase.text.get", "parameters": {"maxlength": {"type": "integer", "location": "query", "format": "uint32"}, "id": {"repeated": true, "required": true, "type": "string", "location": "path"}, "format": {"default": "plain", "enum": ["html", "plain", "raw"], "type": "string", "location": "query"}}, "path": "text{/id*}"}}}', true));
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ContentserviceGet extends Google_Model {
|
||||
public $result;
|
||||
public function setResult($result) {
|
||||
$this->result = $result;
|
||||
}
|
||||
public function getResult() {
|
||||
return $this->result;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,283 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "currentLocation" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $latitudeService = new Google_LatitudeService(...);
|
||||
* $currentLocation = $latitudeService->currentLocation;
|
||||
* </code>
|
||||
*/
|
||||
class Google_CurrentLocationServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Updates or creates the user's current location. (currentLocation.insert)
|
||||
*
|
||||
* @param Google_Location $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Location
|
||||
*/
|
||||
public function insert(Google_Location $postBody, $optParams = array()) {
|
||||
$params = array('postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('insert', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Location($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Returns the authenticated user's current location. (currentLocation.get)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string granularity Granularity of the requested location.
|
||||
* @return Google_Location
|
||||
*/
|
||||
public function get($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Location($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Deletes the authenticated user's current location. (currentLocation.delete)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
*/
|
||||
public function delete($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('delete', array($params));
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The "location" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $latitudeService = new Google_LatitudeService(...);
|
||||
* $location = $latitudeService->location;
|
||||
* </code>
|
||||
*/
|
||||
class Google_LocationServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Inserts or updates a location in the user's location history. (location.insert)
|
||||
*
|
||||
* @param Google_Location $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Location
|
||||
*/
|
||||
public function insert(Google_Location $postBody, $optParams = array()) {
|
||||
$params = array('postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('insert', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Location($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Reads a location from the user's location history. (location.get)
|
||||
*
|
||||
* @param string $locationId Timestamp of the location to read (ms since epoch).
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string granularity Granularity of the location to return.
|
||||
* @return Google_Location
|
||||
*/
|
||||
public function get($locationId, $optParams = array()) {
|
||||
$params = array('locationId' => $locationId);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Location($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Lists the user's location history. (location.list)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string max-results Maximum number of locations to return.
|
||||
* @opt_param string max-time Maximum timestamp of locations to return (ms since epoch).
|
||||
* @opt_param string min-time Minimum timestamp of locations to return (ms since epoch).
|
||||
* @opt_param string granularity Granularity of the requested locations.
|
||||
* @return Google_LocationFeed
|
||||
*/
|
||||
public function listLocation($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_LocationFeed($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Deletes a location from the user's location history. (location.delete)
|
||||
*
|
||||
* @param string $locationId Timestamp of the location to delete (ms since epoch).
|
||||
* @param array $optParams Optional parameters.
|
||||
*/
|
||||
public function delete($locationId, $optParams = array()) {
|
||||
$params = array('locationId' => $locationId);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('delete', array($params));
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Latitude (v1).
|
||||
*
|
||||
* <p>
|
||||
* Lets you read and update your current location and work with your location history
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="https://developers.google.com/latitude/v1/using" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_LatitudeService extends Google_Service {
|
||||
public $currentLocation;
|
||||
public $location;
|
||||
/**
|
||||
* Constructs the internal representation of the Latitude service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'latitude/v1/';
|
||||
$this->version = 'v1';
|
||||
$this->serviceName = 'latitude';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->currentLocation = new Google_CurrentLocationServiceResource($this, $this->serviceName, 'currentLocation', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city", "https://www.googleapis.com/auth/latitude.current.best", "https://www.googleapis.com/auth/latitude.current.city"], "request": {"$ref": "LatitudeCurrentlocationResourceJson"}, "response": {"$ref": "LatitudeCurrentlocationResourceJson"}, "httpMethod": "POST", "path": "currentLocation", "id": "latitude.currentLocation.insert"}, "get": {"scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city", "https://www.googleapis.com/auth/latitude.current.best", "https://www.googleapis.com/auth/latitude.current.city"], "parameters": {"granularity": {"default": "city", "enum": ["best", "city"], "type": "string", "location": "query"}}, "response": {"$ref": "LatitudeCurrentlocationResourceJson"}, "httpMethod": "GET", "path": "currentLocation", "id": "latitude.currentLocation.get"}, "delete": {"path": "currentLocation", "scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city", "https://www.googleapis.com/auth/latitude.current.best", "https://www.googleapis.com/auth/latitude.current.city"], "id": "latitude.currentLocation.delete", "httpMethod": "DELETE"}}}', true));
|
||||
$this->location = new Google_LocationServiceResource($this, $this->serviceName, 'location', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city"], "request": {"$ref": "Location"}, "response": {"$ref": "Location"}, "httpMethod": "POST", "path": "location", "id": "latitude.location.insert"}, "get": {"scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city"], "parameters": {"locationId": {"required": true, "type": "string", "location": "path"}, "granularity": {"default": "city", "enum": ["best", "city"], "type": "string", "location": "query"}}, "id": "latitude.location.get", "httpMethod": "GET", "path": "location/{locationId}", "response": {"$ref": "Location"}}, "list": {"scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city"], "parameters": {"max-results": {"type": "string", "location": "query"}, "max-time": {"type": "string", "location": "query"}, "min-time": {"type": "string", "location": "query"}, "granularity": {"default": "city", "enum": ["best", "city"], "type": "string", "location": "query"}}, "response": {"$ref": "LocationFeed"}, "httpMethod": "GET", "path": "location", "id": "latitude.location.list"}, "delete": {"scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city"], "path": "location/{locationId}", "id": "latitude.location.delete", "parameters": {"locationId": {"required": true, "type": "string", "location": "path"}}, "httpMethod": "DELETE"}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Location extends Google_Model {
|
||||
public $kind;
|
||||
public $altitude;
|
||||
public $longitude;
|
||||
public $activityId;
|
||||
public $latitude;
|
||||
public $altitudeAccuracy;
|
||||
public $timestampMs;
|
||||
public $speed;
|
||||
public $heading;
|
||||
public $accuracy;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setAltitude($altitude) {
|
||||
$this->altitude = $altitude;
|
||||
}
|
||||
public function getAltitude() {
|
||||
return $this->altitude;
|
||||
}
|
||||
public function setLongitude($longitude) {
|
||||
$this->longitude = $longitude;
|
||||
}
|
||||
public function getLongitude() {
|
||||
return $this->longitude;
|
||||
}
|
||||
public function setActivityId($activityId) {
|
||||
$this->activityId = $activityId;
|
||||
}
|
||||
public function getActivityId() {
|
||||
return $this->activityId;
|
||||
}
|
||||
public function setLatitude($latitude) {
|
||||
$this->latitude = $latitude;
|
||||
}
|
||||
public function getLatitude() {
|
||||
return $this->latitude;
|
||||
}
|
||||
public function setAltitudeAccuracy($altitudeAccuracy) {
|
||||
$this->altitudeAccuracy = $altitudeAccuracy;
|
||||
}
|
||||
public function getAltitudeAccuracy() {
|
||||
return $this->altitudeAccuracy;
|
||||
}
|
||||
public function setTimestampMs($timestampMs) {
|
||||
$this->timestampMs = $timestampMs;
|
||||
}
|
||||
public function getTimestampMs() {
|
||||
return $this->timestampMs;
|
||||
}
|
||||
public function setSpeed($speed) {
|
||||
$this->speed = $speed;
|
||||
}
|
||||
public function getSpeed() {
|
||||
return $this->speed;
|
||||
}
|
||||
public function setHeading($heading) {
|
||||
$this->heading = $heading;
|
||||
}
|
||||
public function getHeading() {
|
||||
return $this->heading;
|
||||
}
|
||||
public function setAccuracy($accuracy) {
|
||||
$this->accuracy = $accuracy;
|
||||
}
|
||||
public function getAccuracy() {
|
||||
return $this->accuracy;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_LocationFeed extends Google_Model {
|
||||
protected $__itemsType = 'Google_Location';
|
||||
protected $__itemsDataType = 'array';
|
||||
public $items;
|
||||
public $kind;
|
||||
public function setItems(/* array(Google_Location) */ $items) {
|
||||
$this->assertIsArray($items, 'Google_Location', __METHOD__);
|
||||
$this->items = $items;
|
||||
}
|
||||
public function getItems() {
|
||||
return $this->items;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,285 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "licenseAssignments" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $licensingService = new Google_LicensingService(...);
|
||||
* $licenseAssignments = $licensingService->licenseAssignments;
|
||||
* </code>
|
||||
*/
|
||||
class Google_LicenseAssignmentsServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Assign License. (licenseAssignments.insert)
|
||||
*
|
||||
* @param string $productId Name for product
|
||||
* @param string $skuId Name for sku
|
||||
* @param Google_LicenseAssignmentInsert $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_LicenseAssignment
|
||||
*/
|
||||
public function insert($productId, $skuId, Google_LicenseAssignmentInsert $postBody, $optParams = array()) {
|
||||
$params = array('productId' => $productId, 'skuId' => $skuId, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('insert', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_LicenseAssignment($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Get license assignment of a particular product and sku for a user (licenseAssignments.get)
|
||||
*
|
||||
* @param string $productId Name for product
|
||||
* @param string $skuId Name for sku
|
||||
* @param string $userId email id or unique Id of the user
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_LicenseAssignment
|
||||
*/
|
||||
public function get($productId, $skuId, $userId, $optParams = array()) {
|
||||
$params = array('productId' => $productId, 'skuId' => $skuId, 'userId' => $userId);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_LicenseAssignment($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* List license assignments for given product and sku of the customer.
|
||||
* (licenseAssignments.listForProductAndSku)
|
||||
*
|
||||
* @param string $productId Name for product
|
||||
* @param string $skuId Name for sku
|
||||
* @param string $customerId CustomerId represents the customer for whom licenseassignments are queried
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string pageToken Token to fetch the next page.Optional. By default server will return first page
|
||||
* @opt_param string maxResults Maximum number of campaigns to return at one time. Must be positive. Optional. Default value is 100.
|
||||
* @return Google_LicenseAssignmentList
|
||||
*/
|
||||
public function listForProductAndSku($productId, $skuId, $customerId, $optParams = array()) {
|
||||
$params = array('productId' => $productId, 'skuId' => $skuId, 'customerId' => $customerId);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('listForProductAndSku', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_LicenseAssignmentList($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* List license assignments for given product of the customer. (licenseAssignments.listForProduct)
|
||||
*
|
||||
* @param string $productId Name for product
|
||||
* @param string $customerId CustomerId represents the customer for whom licenseassignments are queried
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string pageToken Token to fetch the next page.Optional. By default server will return first page
|
||||
* @opt_param string maxResults Maximum number of campaigns to return at one time. Must be positive. Optional. Default value is 100.
|
||||
* @return Google_LicenseAssignmentList
|
||||
*/
|
||||
public function listForProduct($productId, $customerId, $optParams = array()) {
|
||||
$params = array('productId' => $productId, 'customerId' => $customerId);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('listForProduct', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_LicenseAssignmentList($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Assign License. (licenseAssignments.update)
|
||||
*
|
||||
* @param string $productId Name for product
|
||||
* @param string $skuId Name for sku for which license would be revoked
|
||||
* @param string $userId email id or unique Id of the user
|
||||
* @param Google_LicenseAssignment $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_LicenseAssignment
|
||||
*/
|
||||
public function update($productId, $skuId, $userId, Google_LicenseAssignment $postBody, $optParams = array()) {
|
||||
$params = array('productId' => $productId, 'skuId' => $skuId, 'userId' => $userId, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('update', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_LicenseAssignment($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Assign License. This method supports patch semantics. (licenseAssignments.patch)
|
||||
*
|
||||
* @param string $productId Name for product
|
||||
* @param string $skuId Name for sku for which license would be revoked
|
||||
* @param string $userId email id or unique Id of the user
|
||||
* @param Google_LicenseAssignment $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_LicenseAssignment
|
||||
*/
|
||||
public function patch($productId, $skuId, $userId, Google_LicenseAssignment $postBody, $optParams = array()) {
|
||||
$params = array('productId' => $productId, 'skuId' => $skuId, 'userId' => $userId, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('patch', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_LicenseAssignment($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Revoke License. (licenseAssignments.delete)
|
||||
*
|
||||
* @param string $productId Name for product
|
||||
* @param string $skuId Name for sku
|
||||
* @param string $userId email id or unique Id of the user
|
||||
* @param array $optParams Optional parameters.
|
||||
*/
|
||||
public function delete($productId, $skuId, $userId, $optParams = array()) {
|
||||
$params = array('productId' => $productId, 'skuId' => $skuId, 'userId' => $userId);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('delete', array($params));
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Licensing (v1).
|
||||
*
|
||||
* <p>
|
||||
* Licensing API to view and manage license for your domain.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="https://developers.google.com/google-apps/licensing/" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_LicensingService extends Google_Service {
|
||||
public $licenseAssignments;
|
||||
/**
|
||||
* Constructs the internal representation of the Licensing service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'apps/licensing/v1/product/';
|
||||
$this->version = 'v1';
|
||||
$this->serviceName = 'licensing';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->licenseAssignments = new Google_LicenseAssignmentsServiceResource($this, $this->serviceName, 'licenseAssignments', json_decode('{"methods": {"insert": {"parameters": {"skuId": {"required": true, "type": "string", "location": "path"}, "productId": {"required": true, "type": "string", "location": "path"}}, "request": {"$ref": "LicenseAssignmentInsert"}, "id": "licensing.licenseAssignments.insert", "httpMethod": "POST", "path": "{productId}/sku/{skuId}/user", "response": {"$ref": "LicenseAssignment"}}, "get": {"httpMethod": "GET", "response": {"$ref": "LicenseAssignment"}, "id": "licensing.licenseAssignments.get", "parameters": {"skuId": {"required": true, "type": "string", "location": "path"}, "userId": {"required": true, "type": "string", "location": "path"}, "productId": {"required": true, "type": "string", "location": "path"}}, "path": "{productId}/sku/{skuId}/user/{userId}"}, "listForProductAndSku": {"httpMethod": "GET", "response": {"$ref": "LicenseAssignmentList"}, "id": "licensing.licenseAssignments.listForProductAndSku", "parameters": {"pageToken": {"default": "", "type": "string", "location": "query"}, "skuId": {"required": true, "type": "string", "location": "path"}, "customerId": {"required": true, "type": "string", "location": "query"}, "maxResults": {"format": "uint32", "default": "100", "maximum": "1000", "minimum": "1", "location": "query", "type": "integer"}, "productId": {"required": true, "type": "string", "location": "path"}}, "path": "{productId}/sku/{skuId}/users"}, "listForProduct": {"httpMethod": "GET", "response": {"$ref": "LicenseAssignmentList"}, "id": "licensing.licenseAssignments.listForProduct", "parameters": {"pageToken": {"default": "", "type": "string", "location": "query"}, "customerId": {"required": true, "type": "string", "location": "query"}, "maxResults": {"format": "uint32", "default": "100", "maximum": "1000", "minimum": "1", "location": "query", "type": "integer"}, "productId": {"required": true, "type": "string", "location": "path"}}, "path": "{productId}/users"}, "update": {"parameters": {"skuId": {"required": true, "type": "string", "location": "path"}, "userId": {"required": true, "type": "string", "location": "path"}, "productId": {"required": true, "type": "string", "location": "path"}}, "request": {"$ref": "LicenseAssignment"}, "id": "licensing.licenseAssignments.update", "httpMethod": "PUT", "path": "{productId}/sku/{skuId}/user/{userId}", "response": {"$ref": "LicenseAssignment"}}, "patch": {"parameters": {"skuId": {"required": true, "type": "string", "location": "path"}, "userId": {"required": true, "type": "string", "location": "path"}, "productId": {"required": true, "type": "string", "location": "path"}}, "request": {"$ref": "LicenseAssignment"}, "id": "licensing.licenseAssignments.patch", "httpMethod": "PATCH", "path": "{productId}/sku/{skuId}/user/{userId}", "response": {"$ref": "LicenseAssignment"}}, "delete": {"httpMethod": "DELETE", "id": "licensing.licenseAssignments.delete", "parameters": {"skuId": {"required": true, "type": "string", "location": "path"}, "userId": {"required": true, "type": "string", "location": "path"}, "productId": {"required": true, "type": "string", "location": "path"}}, "path": "{productId}/sku/{skuId}/user/{userId}"}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_LicenseAssignment extends Google_Model {
|
||||
public $skuId;
|
||||
public $kind;
|
||||
public $userId;
|
||||
public $etags;
|
||||
public $selfLink;
|
||||
public $productId;
|
||||
public function setSkuId($skuId) {
|
||||
$this->skuId = $skuId;
|
||||
}
|
||||
public function getSkuId() {
|
||||
return $this->skuId;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setUserId($userId) {
|
||||
$this->userId = $userId;
|
||||
}
|
||||
public function getUserId() {
|
||||
return $this->userId;
|
||||
}
|
||||
public function setEtags($etags) {
|
||||
$this->etags = $etags;
|
||||
}
|
||||
public function getEtags() {
|
||||
return $this->etags;
|
||||
}
|
||||
public function setSelfLink($selfLink) {
|
||||
$this->selfLink = $selfLink;
|
||||
}
|
||||
public function getSelfLink() {
|
||||
return $this->selfLink;
|
||||
}
|
||||
public function setProductId($productId) {
|
||||
$this->productId = $productId;
|
||||
}
|
||||
public function getProductId() {
|
||||
return $this->productId;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_LicenseAssignmentInsert extends Google_Model {
|
||||
public $userId;
|
||||
public function setUserId($userId) {
|
||||
$this->userId = $userId;
|
||||
}
|
||||
public function getUserId() {
|
||||
return $this->userId;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_LicenseAssignmentList extends Google_Model {
|
||||
public $nextPageToken;
|
||||
protected $__itemsType = 'Google_LicenseAssignment';
|
||||
protected $__itemsDataType = 'array';
|
||||
public $items;
|
||||
public $kind;
|
||||
public $etag;
|
||||
public function setNextPageToken($nextPageToken) {
|
||||
$this->nextPageToken = $nextPageToken;
|
||||
}
|
||||
public function getNextPageToken() {
|
||||
return $this->nextPageToken;
|
||||
}
|
||||
public function setItems(/* array(Google_LicenseAssignment) */ $items) {
|
||||
$this->assertIsArray($items, 'Google_LicenseAssignment', __METHOD__);
|
||||
$this->items = $items;
|
||||
}
|
||||
public function getItems() {
|
||||
return $this->items;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,265 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "userinfo" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $oauth2Service = new Google_Oauth2Service(...);
|
||||
* $userinfo = $oauth2Service->userinfo;
|
||||
* </code>
|
||||
*/
|
||||
class Google_UserinfoServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* (userinfo.get)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Userinfo
|
||||
*/
|
||||
public function get($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Userinfo($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The "v2" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $oauth2Service = new Google_Oauth2Service(...);
|
||||
* $v2 = $oauth2Service->v2;
|
||||
* </code>
|
||||
*/
|
||||
class Google_UserinfoV2ServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* The "me" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $oauth2Service = new Google_Oauth2Service(...);
|
||||
* $me = $oauth2Service->me;
|
||||
* </code>
|
||||
*/
|
||||
class Google_UserinfoV2MeServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* (me.get)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Userinfo
|
||||
*/
|
||||
public function get($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Userinfo($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Oauth2 (v2).
|
||||
*
|
||||
* <p>
|
||||
* OAuth2 API
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_Oauth2Service extends Google_Service {
|
||||
public $userinfo;
|
||||
public $userinfo_v2_me;
|
||||
/**
|
||||
* Constructs the internal representation of the Oauth2 service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = '';
|
||||
$this->version = 'v2';
|
||||
$this->serviceName = 'oauth2';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->userinfo = new Google_UserinfoServiceResource($this, $this->serviceName, 'userinfo', json_decode('{"methods": {"get": {"path": "oauth2/v2/userinfo", "scopes": ["https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile"], "id": "oauth2.userinfo.get", "httpMethod": "GET", "response": {"$ref": "Userinfo"}}}}', true));
|
||||
$this->userinfo_v2_me = new Google_UserinfoV2MeServiceResource($this, $this->serviceName, 'me', json_decode('{"methods": {"get": {"path": "userinfo/v2/me", "scopes": ["https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile"], "id": "oauth2.userinfo.v2.me.get", "httpMethod": "GET", "response": {"$ref": "Userinfo"}}}}', true));
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Tokeninfo extends Google_Model {
|
||||
public $issued_to;
|
||||
public $user_id;
|
||||
public $expires_in;
|
||||
public $access_type;
|
||||
public $audience;
|
||||
public $scope;
|
||||
public $email;
|
||||
public $verified_email;
|
||||
public function setIssued_to($issued_to) {
|
||||
$this->issued_to = $issued_to;
|
||||
}
|
||||
public function getIssued_to() {
|
||||
return $this->issued_to;
|
||||
}
|
||||
public function setUser_id($user_id) {
|
||||
$this->user_id = $user_id;
|
||||
}
|
||||
public function getUser_id() {
|
||||
return $this->user_id;
|
||||
}
|
||||
public function setExpires_in($expires_in) {
|
||||
$this->expires_in = $expires_in;
|
||||
}
|
||||
public function getExpires_in() {
|
||||
return $this->expires_in;
|
||||
}
|
||||
public function setAccess_type($access_type) {
|
||||
$this->access_type = $access_type;
|
||||
}
|
||||
public function getAccess_type() {
|
||||
return $this->access_type;
|
||||
}
|
||||
public function setAudience($audience) {
|
||||
$this->audience = $audience;
|
||||
}
|
||||
public function getAudience() {
|
||||
return $this->audience;
|
||||
}
|
||||
public function setScope($scope) {
|
||||
$this->scope = $scope;
|
||||
}
|
||||
public function getScope() {
|
||||
return $this->scope;
|
||||
}
|
||||
public function setEmail($email) {
|
||||
$this->email = $email;
|
||||
}
|
||||
public function getEmail() {
|
||||
return $this->email;
|
||||
}
|
||||
public function setVerified_email($verified_email) {
|
||||
$this->verified_email = $verified_email;
|
||||
}
|
||||
public function getVerified_email() {
|
||||
return $this->verified_email;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Userinfo extends Google_Model {
|
||||
public $family_name;
|
||||
public $name;
|
||||
public $picture;
|
||||
public $locale;
|
||||
public $gender;
|
||||
public $email;
|
||||
public $birthday;
|
||||
public $link;
|
||||
public $given_name;
|
||||
public $timezone;
|
||||
public $id;
|
||||
public $verified_email;
|
||||
public function setFamily_name($family_name) {
|
||||
$this->family_name = $family_name;
|
||||
}
|
||||
public function getFamily_name() {
|
||||
return $this->family_name;
|
||||
}
|
||||
public function setName($name) {
|
||||
$this->name = $name;
|
||||
}
|
||||
public function getName() {
|
||||
return $this->name;
|
||||
}
|
||||
public function setPicture($picture) {
|
||||
$this->picture = $picture;
|
||||
}
|
||||
public function getPicture() {
|
||||
return $this->picture;
|
||||
}
|
||||
public function setLocale($locale) {
|
||||
$this->locale = $locale;
|
||||
}
|
||||
public function getLocale() {
|
||||
return $this->locale;
|
||||
}
|
||||
public function setGender($gender) {
|
||||
$this->gender = $gender;
|
||||
}
|
||||
public function getGender() {
|
||||
return $this->gender;
|
||||
}
|
||||
public function setEmail($email) {
|
||||
$this->email = $email;
|
||||
}
|
||||
public function getEmail() {
|
||||
return $this->email;
|
||||
}
|
||||
public function setBirthday($birthday) {
|
||||
$this->birthday = $birthday;
|
||||
}
|
||||
public function getBirthday() {
|
||||
return $this->birthday;
|
||||
}
|
||||
public function setLink($link) {
|
||||
$this->link = $link;
|
||||
}
|
||||
public function getLink() {
|
||||
return $this->link;
|
||||
}
|
||||
public function setGiven_name($given_name) {
|
||||
$this->given_name = $given_name;
|
||||
}
|
||||
public function getGiven_name() {
|
||||
return $this->given_name;
|
||||
}
|
||||
public function setTimezone($timezone) {
|
||||
$this->timezone = $timezone;
|
||||
}
|
||||
public function getTimezone() {
|
||||
return $this->timezone;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
public function setVerified_email($verified_email) {
|
||||
$this->verified_email = $verified_email;
|
||||
}
|
||||
public function getVerified_email() {
|
||||
return $this->verified_email;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,474 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "pagespeedapi" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $pagespeedonlineService = new Google_PagespeedonlineService(...);
|
||||
* $pagespeedapi = $pagespeedonlineService->pagespeedapi;
|
||||
* </code>
|
||||
*/
|
||||
class Google_PagespeedapiServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Runs Page Speed analysis on the page at the specified URL, and returns a Page Speed score, a list
|
||||
* of suggestions to make that page faster, and other information. (pagespeedapi.runpagespeed)
|
||||
*
|
||||
* @param string $url The URL to fetch and analyze
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string locale The locale used to localize formatted results
|
||||
* @opt_param string rule A Page Speed rule to run; if none are given, all rules are run
|
||||
* @opt_param string strategy The analysis strategy to use
|
||||
* @return Google_Result
|
||||
*/
|
||||
public function runpagespeed($url, $optParams = array()) {
|
||||
$params = array('url' => $url);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('runpagespeed', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Result($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Pagespeedonline (v1).
|
||||
*
|
||||
* <p>
|
||||
* Lets you analyze the performance of a web page and get tailored suggestions to make that page faster.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="https://code.google.com/apis/pagespeedonline/v1/getting_started.html" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_PagespeedonlineService extends Google_Service {
|
||||
public $pagespeedapi;
|
||||
/**
|
||||
* Constructs the internal representation of the Pagespeedonline service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'pagespeedonline/v1/';
|
||||
$this->version = 'v1';
|
||||
$this->serviceName = 'pagespeedonline';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->pagespeedapi = new Google_PagespeedapiServiceResource($this, $this->serviceName, 'pagespeedapi', json_decode('{"methods": {"runpagespeed": {"httpMethod": "GET", "response": {"$ref": "Result"}, "id": "pagespeedonline.pagespeedapi.runpagespeed", "parameters": {"locale": {"type": "string", "location": "query"}, "url": {"required": true, "type": "string", "location": "query"}, "rule": {"repeated": true, "type": "string", "location": "query"}, "strategy": {"enum": ["desktop", "mobile"], "type": "string", "location": "query"}}, "path": "runPagespeed"}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Result extends Google_Model {
|
||||
public $kind;
|
||||
protected $__formattedResultsType = 'Google_ResultFormattedResults';
|
||||
protected $__formattedResultsDataType = '';
|
||||
public $formattedResults;
|
||||
public $title;
|
||||
protected $__versionType = 'Google_ResultVersion';
|
||||
protected $__versionDataType = '';
|
||||
public $version;
|
||||
public $score;
|
||||
public $responseCode;
|
||||
public $invalidRules;
|
||||
protected $__pageStatsType = 'Google_ResultPageStats';
|
||||
protected $__pageStatsDataType = '';
|
||||
public $pageStats;
|
||||
public $id;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setFormattedResults(Google_ResultFormattedResults $formattedResults) {
|
||||
$this->formattedResults = $formattedResults;
|
||||
}
|
||||
public function getFormattedResults() {
|
||||
return $this->formattedResults;
|
||||
}
|
||||
public function setTitle($title) {
|
||||
$this->title = $title;
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->title;
|
||||
}
|
||||
public function setVersion(Google_ResultVersion $version) {
|
||||
$this->version = $version;
|
||||
}
|
||||
public function getVersion() {
|
||||
return $this->version;
|
||||
}
|
||||
public function setScore($score) {
|
||||
$this->score = $score;
|
||||
}
|
||||
public function getScore() {
|
||||
return $this->score;
|
||||
}
|
||||
public function setResponseCode($responseCode) {
|
||||
$this->responseCode = $responseCode;
|
||||
}
|
||||
public function getResponseCode() {
|
||||
return $this->responseCode;
|
||||
}
|
||||
public function setInvalidRules(/* array(Google_string) */ $invalidRules) {
|
||||
$this->assertIsArray($invalidRules, 'Google_string', __METHOD__);
|
||||
$this->invalidRules = $invalidRules;
|
||||
}
|
||||
public function getInvalidRules() {
|
||||
return $this->invalidRules;
|
||||
}
|
||||
public function setPageStats(Google_ResultPageStats $pageStats) {
|
||||
$this->pageStats = $pageStats;
|
||||
}
|
||||
public function getPageStats() {
|
||||
return $this->pageStats;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultFormattedResults extends Google_Model {
|
||||
public $locale;
|
||||
protected $__ruleResultsType = 'Google_ResultFormattedResultsRuleResults';
|
||||
protected $__ruleResultsDataType = 'map';
|
||||
public $ruleResults;
|
||||
public function setLocale($locale) {
|
||||
$this->locale = $locale;
|
||||
}
|
||||
public function getLocale() {
|
||||
return $this->locale;
|
||||
}
|
||||
public function setRuleResults(Google_ResultFormattedResultsRuleResults $ruleResults) {
|
||||
$this->ruleResults = $ruleResults;
|
||||
}
|
||||
public function getRuleResults() {
|
||||
return $this->ruleResults;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultFormattedResultsRuleResults extends Google_Model {
|
||||
public $localizedRuleName;
|
||||
protected $__urlBlocksType = 'Google_ResultFormattedResultsRuleResultsUrlBlocks';
|
||||
protected $__urlBlocksDataType = 'array';
|
||||
public $urlBlocks;
|
||||
public $ruleScore;
|
||||
public $ruleImpact;
|
||||
public function setLocalizedRuleName($localizedRuleName) {
|
||||
$this->localizedRuleName = $localizedRuleName;
|
||||
}
|
||||
public function getLocalizedRuleName() {
|
||||
return $this->localizedRuleName;
|
||||
}
|
||||
public function setUrlBlocks(/* array(Google_ResultFormattedResultsRuleResultsUrlBlocks) */ $urlBlocks) {
|
||||
$this->assertIsArray($urlBlocks, 'Google_ResultFormattedResultsRuleResultsUrlBlocks', __METHOD__);
|
||||
$this->urlBlocks = $urlBlocks;
|
||||
}
|
||||
public function getUrlBlocks() {
|
||||
return $this->urlBlocks;
|
||||
}
|
||||
public function setRuleScore($ruleScore) {
|
||||
$this->ruleScore = $ruleScore;
|
||||
}
|
||||
public function getRuleScore() {
|
||||
return $this->ruleScore;
|
||||
}
|
||||
public function setRuleImpact($ruleImpact) {
|
||||
$this->ruleImpact = $ruleImpact;
|
||||
}
|
||||
public function getRuleImpact() {
|
||||
return $this->ruleImpact;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultFormattedResultsRuleResultsUrlBlocks extends Google_Model {
|
||||
protected $__headerType = 'Google_ResultFormattedResultsRuleResultsUrlBlocksHeader';
|
||||
protected $__headerDataType = '';
|
||||
public $header;
|
||||
protected $__urlsType = 'Google_ResultFormattedResultsRuleResultsUrlBlocksUrls';
|
||||
protected $__urlsDataType = 'array';
|
||||
public $urls;
|
||||
public function setHeader(Google_ResultFormattedResultsRuleResultsUrlBlocksHeader $header) {
|
||||
$this->header = $header;
|
||||
}
|
||||
public function getHeader() {
|
||||
return $this->header;
|
||||
}
|
||||
public function setUrls(/* array(Google_ResultFormattedResultsRuleResultsUrlBlocksUrls) */ $urls) {
|
||||
$this->assertIsArray($urls, 'Google_ResultFormattedResultsRuleResultsUrlBlocksUrls', __METHOD__);
|
||||
$this->urls = $urls;
|
||||
}
|
||||
public function getUrls() {
|
||||
return $this->urls;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultFormattedResultsRuleResultsUrlBlocksHeader extends Google_Model {
|
||||
protected $__argsType = 'Google_ResultFormattedResultsRuleResultsUrlBlocksHeaderArgs';
|
||||
protected $__argsDataType = 'array';
|
||||
public $args;
|
||||
public $format;
|
||||
public function setArgs(/* array(Google_ResultFormattedResultsRuleResultsUrlBlocksHeaderArgs) */ $args) {
|
||||
$this->assertIsArray($args, 'Google_ResultFormattedResultsRuleResultsUrlBlocksHeaderArgs', __METHOD__);
|
||||
$this->args = $args;
|
||||
}
|
||||
public function getArgs() {
|
||||
return $this->args;
|
||||
}
|
||||
public function setFormat($format) {
|
||||
$this->format = $format;
|
||||
}
|
||||
public function getFormat() {
|
||||
return $this->format;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultFormattedResultsRuleResultsUrlBlocksHeaderArgs extends Google_Model {
|
||||
public $type;
|
||||
public $value;
|
||||
public function setType($type) {
|
||||
$this->type = $type;
|
||||
}
|
||||
public function getType() {
|
||||
return $this->type;
|
||||
}
|
||||
public function setValue($value) {
|
||||
$this->value = $value;
|
||||
}
|
||||
public function getValue() {
|
||||
return $this->value;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultFormattedResultsRuleResultsUrlBlocksUrls extends Google_Model {
|
||||
protected $__detailsType = 'Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsDetails';
|
||||
protected $__detailsDataType = 'array';
|
||||
public $details;
|
||||
protected $__resultType = 'Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsResult';
|
||||
protected $__resultDataType = '';
|
||||
public $result;
|
||||
public function setDetails(/* array(Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsDetails) */ $details) {
|
||||
$this->assertIsArray($details, 'Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsDetails', __METHOD__);
|
||||
$this->details = $details;
|
||||
}
|
||||
public function getDetails() {
|
||||
return $this->details;
|
||||
}
|
||||
public function setResult(Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsResult $result) {
|
||||
$this->result = $result;
|
||||
}
|
||||
public function getResult() {
|
||||
return $this->result;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsDetails extends Google_Model {
|
||||
protected $__argsType = 'Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsDetailsArgs';
|
||||
protected $__argsDataType = 'array';
|
||||
public $args;
|
||||
public $format;
|
||||
public function setArgs(/* array(Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsDetailsArgs) */ $args) {
|
||||
$this->assertIsArray($args, 'Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsDetailsArgs', __METHOD__);
|
||||
$this->args = $args;
|
||||
}
|
||||
public function getArgs() {
|
||||
return $this->args;
|
||||
}
|
||||
public function setFormat($format) {
|
||||
$this->format = $format;
|
||||
}
|
||||
public function getFormat() {
|
||||
return $this->format;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsDetailsArgs extends Google_Model {
|
||||
public $type;
|
||||
public $value;
|
||||
public function setType($type) {
|
||||
$this->type = $type;
|
||||
}
|
||||
public function getType() {
|
||||
return $this->type;
|
||||
}
|
||||
public function setValue($value) {
|
||||
$this->value = $value;
|
||||
}
|
||||
public function getValue() {
|
||||
return $this->value;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsResult extends Google_Model {
|
||||
protected $__argsType = 'Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsResultArgs';
|
||||
protected $__argsDataType = 'array';
|
||||
public $args;
|
||||
public $format;
|
||||
public function setArgs(/* array(Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsResultArgs) */ $args) {
|
||||
$this->assertIsArray($args, 'Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsResultArgs', __METHOD__);
|
||||
$this->args = $args;
|
||||
}
|
||||
public function getArgs() {
|
||||
return $this->args;
|
||||
}
|
||||
public function setFormat($format) {
|
||||
$this->format = $format;
|
||||
}
|
||||
public function getFormat() {
|
||||
return $this->format;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultFormattedResultsRuleResultsUrlBlocksUrlsResultArgs extends Google_Model {
|
||||
public $type;
|
||||
public $value;
|
||||
public function setType($type) {
|
||||
$this->type = $type;
|
||||
}
|
||||
public function getType() {
|
||||
return $this->type;
|
||||
}
|
||||
public function setValue($value) {
|
||||
$this->value = $value;
|
||||
}
|
||||
public function getValue() {
|
||||
return $this->value;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultPageStats extends Google_Model {
|
||||
public $otherResponseBytes;
|
||||
public $flashResponseBytes;
|
||||
public $totalRequestBytes;
|
||||
public $numberCssResources;
|
||||
public $numberResources;
|
||||
public $cssResponseBytes;
|
||||
public $javascriptResponseBytes;
|
||||
public $imageResponseBytes;
|
||||
public $numberHosts;
|
||||
public $numberStaticResources;
|
||||
public $htmlResponseBytes;
|
||||
public $numberJsResources;
|
||||
public $textResponseBytes;
|
||||
public function setOtherResponseBytes($otherResponseBytes) {
|
||||
$this->otherResponseBytes = $otherResponseBytes;
|
||||
}
|
||||
public function getOtherResponseBytes() {
|
||||
return $this->otherResponseBytes;
|
||||
}
|
||||
public function setFlashResponseBytes($flashResponseBytes) {
|
||||
$this->flashResponseBytes = $flashResponseBytes;
|
||||
}
|
||||
public function getFlashResponseBytes() {
|
||||
return $this->flashResponseBytes;
|
||||
}
|
||||
public function setTotalRequestBytes($totalRequestBytes) {
|
||||
$this->totalRequestBytes = $totalRequestBytes;
|
||||
}
|
||||
public function getTotalRequestBytes() {
|
||||
return $this->totalRequestBytes;
|
||||
}
|
||||
public function setNumberCssResources($numberCssResources) {
|
||||
$this->numberCssResources = $numberCssResources;
|
||||
}
|
||||
public function getNumberCssResources() {
|
||||
return $this->numberCssResources;
|
||||
}
|
||||
public function setNumberResources($numberResources) {
|
||||
$this->numberResources = $numberResources;
|
||||
}
|
||||
public function getNumberResources() {
|
||||
return $this->numberResources;
|
||||
}
|
||||
public function setCssResponseBytes($cssResponseBytes) {
|
||||
$this->cssResponseBytes = $cssResponseBytes;
|
||||
}
|
||||
public function getCssResponseBytes() {
|
||||
return $this->cssResponseBytes;
|
||||
}
|
||||
public function setJavascriptResponseBytes($javascriptResponseBytes) {
|
||||
$this->javascriptResponseBytes = $javascriptResponseBytes;
|
||||
}
|
||||
public function getJavascriptResponseBytes() {
|
||||
return $this->javascriptResponseBytes;
|
||||
}
|
||||
public function setImageResponseBytes($imageResponseBytes) {
|
||||
$this->imageResponseBytes = $imageResponseBytes;
|
||||
}
|
||||
public function getImageResponseBytes() {
|
||||
return $this->imageResponseBytes;
|
||||
}
|
||||
public function setNumberHosts($numberHosts) {
|
||||
$this->numberHosts = $numberHosts;
|
||||
}
|
||||
public function getNumberHosts() {
|
||||
return $this->numberHosts;
|
||||
}
|
||||
public function setNumberStaticResources($numberStaticResources) {
|
||||
$this->numberStaticResources = $numberStaticResources;
|
||||
}
|
||||
public function getNumberStaticResources() {
|
||||
return $this->numberStaticResources;
|
||||
}
|
||||
public function setHtmlResponseBytes($htmlResponseBytes) {
|
||||
$this->htmlResponseBytes = $htmlResponseBytes;
|
||||
}
|
||||
public function getHtmlResponseBytes() {
|
||||
return $this->htmlResponseBytes;
|
||||
}
|
||||
public function setNumberJsResources($numberJsResources) {
|
||||
$this->numberJsResources = $numberJsResources;
|
||||
}
|
||||
public function getNumberJsResources() {
|
||||
return $this->numberJsResources;
|
||||
}
|
||||
public function setTextResponseBytes($textResponseBytes) {
|
||||
$this->textResponseBytes = $textResponseBytes;
|
||||
}
|
||||
public function getTextResponseBytes() {
|
||||
return $this->textResponseBytes;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResultVersion extends Google_Model {
|
||||
public $major;
|
||||
public $minor;
|
||||
public function setMajor($major) {
|
||||
$this->major = $major;
|
||||
}
|
||||
public function getMajor() {
|
||||
return $this->major;
|
||||
}
|
||||
public function setMinor($minor) {
|
||||
$this->minor = $minor;
|
||||
}
|
||||
public function getMinor() {
|
||||
return $this->minor;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,567 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "moments" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $plusService = new Google_PlusMomentsService(...);
|
||||
* $moments = $plusService->moments;
|
||||
* </code>
|
||||
*/
|
||||
class Google_MomentsServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Record a user activity (e.g Bill watched a video on Youtube) (moments.insert)
|
||||
*
|
||||
* @param string $userId The ID of the user to get activities for. The special value "me" can be used to indicate the authenticated user.
|
||||
* @param string $collection The collection to which to write moments.
|
||||
* @param Google_Moment $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param bool debug Return the moment as written. Should be used only for debugging.
|
||||
* @return Google_Moment
|
||||
*/
|
||||
public function insert($userId, $collection, Google_Moment $postBody, $optParams = array()) {
|
||||
$params = array('userId' => $userId, 'collection' => $collection, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('insert', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Moment($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Plus (v1moments).
|
||||
*
|
||||
* <p>
|
||||
* The Google+ API enables developers to build on top of the Google+ platform.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="https://developers.google.com/+/history/" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_PlusMomentsService extends Google_Service {
|
||||
public $moments;
|
||||
/**
|
||||
* Constructs the internal representation of the Plus service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'plus/v1moments/people/';
|
||||
$this->version = 'v1moments';
|
||||
$this->serviceName = 'plus';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->moments = new Google_MomentsServiceResource($this, $this->serviceName, 'moments',
|
||||
json_decode('{"methods": {"insert": {"parameters": {"debug": {"type": "boolean", "location": "query"}, "userId": {"required": true, "type": "string", "location": "path"}, "collection": {"required": true, "type": "string", "location": "path", "enum": ["vault"]}}, "request": {"$ref": "Moment"}, "response": {"$ref": "Moment"}, "httpMethod": "POST", "path": "{userId}/moments/{collection}", "id": "plus.moments.insert"}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ItemScope extends Google_Model {
|
||||
public $startDate;
|
||||
public $endDate;
|
||||
public $text;
|
||||
public $image;
|
||||
protected $__addressType = 'Google_ItemScope';
|
||||
protected $__addressDataType = '';
|
||||
public $address;
|
||||
public $birthDate;
|
||||
public $datePublished;
|
||||
public $addressLocality;
|
||||
public $duration;
|
||||
public $additionalName;
|
||||
public $worstRating;
|
||||
protected $__contributorType = 'Google_ItemScope';
|
||||
protected $__contributorDataType = 'array';
|
||||
public $contributor;
|
||||
public $thumbnailUrl;
|
||||
public $id;
|
||||
public $postOfficeBoxNumber;
|
||||
protected $__attendeesType = 'Google_ItemScope';
|
||||
protected $__attendeesDataType = 'array';
|
||||
public $attendees;
|
||||
protected $__authorType = 'Google_ItemScope';
|
||||
protected $__authorDataType = 'array';
|
||||
public $author;
|
||||
protected $__associated_mediaType = 'Google_ItemScope';
|
||||
protected $__associated_mediaDataType = 'array';
|
||||
public $associated_media;
|
||||
public $bestRating;
|
||||
public $addressCountry;
|
||||
public $width;
|
||||
public $streetAddress;
|
||||
protected $__locationType = 'Google_ItemScope';
|
||||
protected $__locationDataType = '';
|
||||
public $location;
|
||||
public $latitude;
|
||||
protected $__byArtistType = 'Google_ItemScope';
|
||||
protected $__byArtistDataType = '';
|
||||
public $byArtist;
|
||||
public $type;
|
||||
public $dateModified;
|
||||
public $contentSize;
|
||||
public $contentUrl;
|
||||
protected $__partOfTVSeriesType = 'Google_ItemScope';
|
||||
protected $__partOfTVSeriesDataType = '';
|
||||
public $partOfTVSeries;
|
||||
public $description;
|
||||
public $familyName;
|
||||
public $kind;
|
||||
public $dateCreated;
|
||||
public $postalCode;
|
||||
public $attendeeCount;
|
||||
protected $__inAlbumType = 'Google_ItemScope';
|
||||
protected $__inAlbumDataType = '';
|
||||
public $inAlbum;
|
||||
public $addressRegion;
|
||||
public $height;
|
||||
protected $__geoType = 'Google_ItemScope';
|
||||
protected $__geoDataType = '';
|
||||
public $geo;
|
||||
public $embedUrl;
|
||||
public $tickerSymbol;
|
||||
public $playerType;
|
||||
protected $__aboutType = 'Google_ItemScope';
|
||||
protected $__aboutDataType = '';
|
||||
public $about;
|
||||
public $givenName;
|
||||
public $name;
|
||||
protected $__performersType = 'Google_ItemScope';
|
||||
protected $__performersDataType = 'array';
|
||||
public $performers;
|
||||
public $url;
|
||||
public $gender;
|
||||
public $longitude;
|
||||
protected $__thumbnailType = 'Google_ItemScope';
|
||||
protected $__thumbnailDataType = '';
|
||||
public $thumbnail;
|
||||
public $caption;
|
||||
public $ratingValue;
|
||||
protected $__reviewRatingType = 'Google_ItemScope';
|
||||
protected $__reviewRatingDataType = '';
|
||||
public $reviewRating;
|
||||
protected $__audioType = 'Google_ItemScope';
|
||||
protected $__audioDataType = '';
|
||||
public $audio;
|
||||
public function setStartDate($startDate) {
|
||||
$this->startDate = $startDate;
|
||||
}
|
||||
public function getStartDate() {
|
||||
return $this->startDate;
|
||||
}
|
||||
public function setEndDate($endDate) {
|
||||
$this->endDate = $endDate;
|
||||
}
|
||||
public function getEndDate() {
|
||||
return $this->endDate;
|
||||
}
|
||||
public function setText($text) {
|
||||
$this->text = $text;
|
||||
}
|
||||
public function getText() {
|
||||
return $this->text;
|
||||
}
|
||||
public function setImage($image) {
|
||||
$this->image = $image;
|
||||
}
|
||||
public function getImage() {
|
||||
return $this->image;
|
||||
}
|
||||
public function setAddress(Google_ItemScope $address) {
|
||||
$this->address = $address;
|
||||
}
|
||||
public function getAddress() {
|
||||
return $this->address;
|
||||
}
|
||||
public function setBirthDate($birthDate) {
|
||||
$this->birthDate = $birthDate;
|
||||
}
|
||||
public function getBirthDate() {
|
||||
return $this->birthDate;
|
||||
}
|
||||
public function setDatePublished($datePublished) {
|
||||
$this->datePublished = $datePublished;
|
||||
}
|
||||
public function getDatePublished() {
|
||||
return $this->datePublished;
|
||||
}
|
||||
public function setAddressLocality($addressLocality) {
|
||||
$this->addressLocality = $addressLocality;
|
||||
}
|
||||
public function getAddressLocality() {
|
||||
return $this->addressLocality;
|
||||
}
|
||||
public function setDuration($duration) {
|
||||
$this->duration = $duration;
|
||||
}
|
||||
public function getDuration() {
|
||||
return $this->duration;
|
||||
}
|
||||
public function setAdditionalName(/* array(Google_string) */ $additionalName) {
|
||||
$this->assertIsArray($additionalName, 'Google_string', __METHOD__);
|
||||
$this->additionalName = $additionalName;
|
||||
}
|
||||
public function getAdditionalName() {
|
||||
return $this->additionalName;
|
||||
}
|
||||
public function setWorstRating($worstRating) {
|
||||
$this->worstRating = $worstRating;
|
||||
}
|
||||
public function getWorstRating() {
|
||||
return $this->worstRating;
|
||||
}
|
||||
public function setContributor(/* array(Google_ItemScope) */ $contributor) {
|
||||
$this->assertIsArray($contributor, 'Google_ItemScope', __METHOD__);
|
||||
$this->contributor = $contributor;
|
||||
}
|
||||
public function getContributor() {
|
||||
return $this->contributor;
|
||||
}
|
||||
public function setThumbnailUrl($thumbnailUrl) {
|
||||
$this->thumbnailUrl = $thumbnailUrl;
|
||||
}
|
||||
public function getThumbnailUrl() {
|
||||
return $this->thumbnailUrl;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
public function setPostOfficeBoxNumber($postOfficeBoxNumber) {
|
||||
$this->postOfficeBoxNumber = $postOfficeBoxNumber;
|
||||
}
|
||||
public function getPostOfficeBoxNumber() {
|
||||
return $this->postOfficeBoxNumber;
|
||||
}
|
||||
public function setAttendees(/* array(Google_ItemScope) */ $attendees) {
|
||||
$this->assertIsArray($attendees, 'Google_ItemScope', __METHOD__);
|
||||
$this->attendees = $attendees;
|
||||
}
|
||||
public function getAttendees() {
|
||||
return $this->attendees;
|
||||
}
|
||||
public function setAuthor(/* array(Google_ItemScope) */ $author) {
|
||||
$this->assertIsArray($author, 'Google_ItemScope', __METHOD__);
|
||||
$this->author = $author;
|
||||
}
|
||||
public function getAuthor() {
|
||||
return $this->author;
|
||||
}
|
||||
public function setAssociated_media(/* array(Google_ItemScope) */ $associated_media) {
|
||||
$this->assertIsArray($associated_media, 'Google_ItemScope', __METHOD__);
|
||||
$this->associated_media = $associated_media;
|
||||
}
|
||||
public function getAssociated_media() {
|
||||
return $this->associated_media;
|
||||
}
|
||||
public function setBestRating($bestRating) {
|
||||
$this->bestRating = $bestRating;
|
||||
}
|
||||
public function getBestRating() {
|
||||
return $this->bestRating;
|
||||
}
|
||||
public function setAddressCountry($addressCountry) {
|
||||
$this->addressCountry = $addressCountry;
|
||||
}
|
||||
public function getAddressCountry() {
|
||||
return $this->addressCountry;
|
||||
}
|
||||
public function setWidth($width) {
|
||||
$this->width = $width;
|
||||
}
|
||||
public function getWidth() {
|
||||
return $this->width;
|
||||
}
|
||||
public function setStreetAddress($streetAddress) {
|
||||
$this->streetAddress = $streetAddress;
|
||||
}
|
||||
public function getStreetAddress() {
|
||||
return $this->streetAddress;
|
||||
}
|
||||
public function setLocation(Google_ItemScope $location) {
|
||||
$this->location = $location;
|
||||
}
|
||||
public function getLocation() {
|
||||
return $this->location;
|
||||
}
|
||||
public function setLatitude($latitude) {
|
||||
$this->latitude = $latitude;
|
||||
}
|
||||
public function getLatitude() {
|
||||
return $this->latitude;
|
||||
}
|
||||
public function setByArtist(Google_ItemScope $byArtist) {
|
||||
$this->byArtist = $byArtist;
|
||||
}
|
||||
public function getByArtist() {
|
||||
return $this->byArtist;
|
||||
}
|
||||
public function setType($type) {
|
||||
$this->type = $type;
|
||||
}
|
||||
public function getType() {
|
||||
return $this->type;
|
||||
}
|
||||
public function setDateModified($dateModified) {
|
||||
$this->dateModified = $dateModified;
|
||||
}
|
||||
public function getDateModified() {
|
||||
return $this->dateModified;
|
||||
}
|
||||
public function setContentSize($contentSize) {
|
||||
$this->contentSize = $contentSize;
|
||||
}
|
||||
public function getContentSize() {
|
||||
return $this->contentSize;
|
||||
}
|
||||
public function setContentUrl($contentUrl) {
|
||||
$this->contentUrl = $contentUrl;
|
||||
}
|
||||
public function getContentUrl() {
|
||||
return $this->contentUrl;
|
||||
}
|
||||
public function setPartOfTVSeries(Google_ItemScope $partOfTVSeries) {
|
||||
$this->partOfTVSeries = $partOfTVSeries;
|
||||
}
|
||||
public function getPartOfTVSeries() {
|
||||
return $this->partOfTVSeries;
|
||||
}
|
||||
public function setDescription($description) {
|
||||
$this->description = $description;
|
||||
}
|
||||
public function getDescription() {
|
||||
return $this->description;
|
||||
}
|
||||
public function setFamilyName($familyName) {
|
||||
$this->familyName = $familyName;
|
||||
}
|
||||
public function getFamilyName() {
|
||||
return $this->familyName;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setDateCreated($dateCreated) {
|
||||
$this->dateCreated = $dateCreated;
|
||||
}
|
||||
public function getDateCreated() {
|
||||
return $this->dateCreated;
|
||||
}
|
||||
public function setPostalCode($postalCode) {
|
||||
$this->postalCode = $postalCode;
|
||||
}
|
||||
public function getPostalCode() {
|
||||
return $this->postalCode;
|
||||
}
|
||||
public function setAttendeeCount($attendeeCount) {
|
||||
$this->attendeeCount = $attendeeCount;
|
||||
}
|
||||
public function getAttendeeCount() {
|
||||
return $this->attendeeCount;
|
||||
}
|
||||
public function setInAlbum(Google_ItemScope $inAlbum) {
|
||||
$this->inAlbum = $inAlbum;
|
||||
}
|
||||
public function getInAlbum() {
|
||||
return $this->inAlbum;
|
||||
}
|
||||
public function setAddressRegion($addressRegion) {
|
||||
$this->addressRegion = $addressRegion;
|
||||
}
|
||||
public function getAddressRegion() {
|
||||
return $this->addressRegion;
|
||||
}
|
||||
public function setHeight($height) {
|
||||
$this->height = $height;
|
||||
}
|
||||
public function getHeight() {
|
||||
return $this->height;
|
||||
}
|
||||
public function setGeo(Google_ItemScope $geo) {
|
||||
$this->geo = $geo;
|
||||
}
|
||||
public function getGeo() {
|
||||
return $this->geo;
|
||||
}
|
||||
public function setEmbedUrl($embedUrl) {
|
||||
$this->embedUrl = $embedUrl;
|
||||
}
|
||||
public function getEmbedUrl() {
|
||||
return $this->embedUrl;
|
||||
}
|
||||
public function setTickerSymbol($tickerSymbol) {
|
||||
$this->tickerSymbol = $tickerSymbol;
|
||||
}
|
||||
public function getTickerSymbol() {
|
||||
return $this->tickerSymbol;
|
||||
}
|
||||
public function setPlayerType($playerType) {
|
||||
$this->playerType = $playerType;
|
||||
}
|
||||
public function getPlayerType() {
|
||||
return $this->playerType;
|
||||
}
|
||||
public function setAbout(Google_ItemScope $about) {
|
||||
$this->about = $about;
|
||||
}
|
||||
public function getAbout() {
|
||||
return $this->about;
|
||||
}
|
||||
public function setGivenName($givenName) {
|
||||
$this->givenName = $givenName;
|
||||
}
|
||||
public function getGivenName() {
|
||||
return $this->givenName;
|
||||
}
|
||||
public function setName($name) {
|
||||
$this->name = $name;
|
||||
}
|
||||
public function getName() {
|
||||
return $this->name;
|
||||
}
|
||||
public function setPerformers(/* array(Google_ItemScope) */ $performers) {
|
||||
$this->assertIsArray($performers, 'Google_ItemScope', __METHOD__);
|
||||
$this->performers = $performers;
|
||||
}
|
||||
public function getPerformers() {
|
||||
return $this->performers;
|
||||
}
|
||||
public function setUrl($url) {
|
||||
$this->url = $url;
|
||||
}
|
||||
public function getUrl() {
|
||||
return $this->url;
|
||||
}
|
||||
public function setGender($gender) {
|
||||
$this->gender = $gender;
|
||||
}
|
||||
public function getGender() {
|
||||
return $this->gender;
|
||||
}
|
||||
public function setLongitude($longitude) {
|
||||
$this->longitude = $longitude;
|
||||
}
|
||||
public function getLongitude() {
|
||||
return $this->longitude;
|
||||
}
|
||||
public function setThumbnail(Google_ItemScope $thumbnail) {
|
||||
$this->thumbnail = $thumbnail;
|
||||
}
|
||||
public function getThumbnail() {
|
||||
return $this->thumbnail;
|
||||
}
|
||||
public function setCaption($caption) {
|
||||
$this->caption = $caption;
|
||||
}
|
||||
public function getCaption() {
|
||||
return $this->caption;
|
||||
}
|
||||
public function setRatingValue($ratingValue) {
|
||||
$this->ratingValue = $ratingValue;
|
||||
}
|
||||
public function getRatingValue() {
|
||||
return $this->ratingValue;
|
||||
}
|
||||
public function setReviewRating(Google_ItemScope $reviewRating) {
|
||||
$this->reviewRating = $reviewRating;
|
||||
}
|
||||
public function getReviewRating() {
|
||||
return $this->reviewRating;
|
||||
}
|
||||
public function setAudio(Google_ItemScope $audio) {
|
||||
$this->audio = $audio;
|
||||
}
|
||||
public function getAudio() {
|
||||
return $this->audio;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Moment extends Google_Model {
|
||||
public $startDate;
|
||||
public $kind;
|
||||
protected $__targetType = 'Google_ItemScope';
|
||||
protected $__targetDataType = '';
|
||||
public $target;
|
||||
protected $__verbType = 'Google_MomentVerb';
|
||||
protected $__verbDataType = '';
|
||||
public $verb;
|
||||
protected $__resultType = 'Google_ItemScope';
|
||||
protected $__resultDataType = '';
|
||||
public $result;
|
||||
public $type;
|
||||
public function setStartDate($startDate) {
|
||||
$this->startDate = $startDate;
|
||||
}
|
||||
public function getStartDate() {
|
||||
return $this->startDate;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setTarget(Google_ItemScope $target) {
|
||||
$this->target = $target;
|
||||
}
|
||||
public function getTarget() {
|
||||
return $this->target;
|
||||
}
|
||||
public function setVerb(Google_MomentVerb $verb) {
|
||||
$this->verb = $verb;
|
||||
}
|
||||
public function getVerb() {
|
||||
return $this->verb;
|
||||
}
|
||||
public function setResult(Google_ItemScope $result) {
|
||||
$this->result = $result;
|
||||
}
|
||||
public function getResult() {
|
||||
return $this->result;
|
||||
}
|
||||
public function setType($type) {
|
||||
$this->type = $type;
|
||||
}
|
||||
public function getType() {
|
||||
return $this->type;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_MomentVerb extends Google_Model {
|
||||
public $url;
|
||||
public function setUrl($url) {
|
||||
$this->url = $url;
|
||||
}
|
||||
public function getUrl() {
|
||||
return $this->url;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,429 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "trainedmodels" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $predictionService = new Google_PredictionService(...);
|
||||
* $trainedmodels = $predictionService->trainedmodels;
|
||||
* </code>
|
||||
*/
|
||||
class Google_TrainedmodelsServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Submit model id and request a prediction (trainedmodels.predict)
|
||||
*
|
||||
* @param string $id The unique name for the predictive model.
|
||||
* @param Google_Input $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Output
|
||||
*/
|
||||
public function predict($id, Google_Input $postBody, $optParams = array()) {
|
||||
$params = array('id' => $id, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('predict', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Output($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Begin training your model. (trainedmodels.insert)
|
||||
*
|
||||
* @param Google_Training $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Training
|
||||
*/
|
||||
public function insert(Google_Training $postBody, $optParams = array()) {
|
||||
$params = array('postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('insert', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Training($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Check training status of your model. (trainedmodels.get)
|
||||
*
|
||||
* @param string $id The unique name for the predictive model.
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Training
|
||||
*/
|
||||
public function get($id, $optParams = array()) {
|
||||
$params = array('id' => $id);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Training($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Add new data to a trained model. (trainedmodels.update)
|
||||
*
|
||||
* @param string $id The unique name for the predictive model.
|
||||
* @param Google_Update $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Training
|
||||
*/
|
||||
public function update($id, Google_Update $postBody, $optParams = array()) {
|
||||
$params = array('id' => $id, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('update', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Training($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Delete a trained model. (trainedmodels.delete)
|
||||
*
|
||||
* @param string $id The unique name for the predictive model.
|
||||
* @param array $optParams Optional parameters.
|
||||
*/
|
||||
public function delete($id, $optParams = array()) {
|
||||
$params = array('id' => $id);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('delete', array($params));
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The "hostedmodels" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $predictionService = new Google_PredictionService(...);
|
||||
* $hostedmodels = $predictionService->hostedmodels;
|
||||
* </code>
|
||||
*/
|
||||
class Google_HostedmodelsServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Submit input and request an output against a hosted model. (hostedmodels.predict)
|
||||
*
|
||||
* @param string $hostedModelName The name of a hosted model.
|
||||
* @param Google_Input $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Output
|
||||
*/
|
||||
public function predict($hostedModelName, Google_Input $postBody, $optParams = array()) {
|
||||
$params = array('hostedModelName' => $hostedModelName, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('predict', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Output($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Prediction (v1.4).
|
||||
*
|
||||
* <p>
|
||||
* Lets you access a cloud hosted machine learning service that makes it easy to build smart apps
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="http://code.google.com/apis/predict/docs/developer-guide.html" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_PredictionService extends Google_Service {
|
||||
public $trainedmodels;
|
||||
public $hostedmodels;
|
||||
/**
|
||||
* Constructs the internal representation of the Prediction service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'prediction/v1.4/';
|
||||
$this->version = 'v1.4';
|
||||
$this->serviceName = 'prediction';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->trainedmodels = new Google_TrainedmodelsServiceResource($this, $this->serviceName, 'trainedmodels', json_decode('{"methods": {"predict": {"scopes": ["https://www.googleapis.com/auth/prediction"], "parameters": {"id": {"required": true, "type": "string", "location": "path"}}, "request": {"$ref": "Input"}, "response": {"$ref": "Output"}, "httpMethod": "POST", "path": "trainedmodels/{id}/predict", "id": "prediction.trainedmodels.predict"}, "insert": {"scopes": ["https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/prediction"], "request": {"$ref": "Training"}, "response": {"$ref": "Training"}, "httpMethod": "POST", "path": "trainedmodels", "id": "prediction.trainedmodels.insert"}, "get": {"scopes": ["https://www.googleapis.com/auth/prediction"], "parameters": {"id": {"required": true, "type": "string", "location": "path"}}, "id": "prediction.trainedmodels.get", "httpMethod": "GET", "path": "trainedmodels/{id}", "response": {"$ref": "Training"}}, "update": {"scopes": ["https://www.googleapis.com/auth/prediction"], "parameters": {"id": {"required": true, "type": "string", "location": "path"}}, "request": {"$ref": "Update"}, "response": {"$ref": "Training"}, "httpMethod": "PUT", "path": "trainedmodels/{id}", "id": "prediction.trainedmodels.update"}, "delete": {"scopes": ["https://www.googleapis.com/auth/prediction"], "path": "trainedmodels/{id}", "id": "prediction.trainedmodels.delete", "parameters": {"id": {"required": true, "type": "string", "location": "path"}}, "httpMethod": "DELETE"}}}', true));
|
||||
$this->hostedmodels = new Google_HostedmodelsServiceResource($this, $this->serviceName, 'hostedmodels', json_decode('{"methods": {"predict": {"scopes": ["https://www.googleapis.com/auth/prediction"], "parameters": {"hostedModelName": {"required": true, "type": "string", "location": "path"}}, "request": {"$ref": "Input"}, "response": {"$ref": "Output"}, "httpMethod": "POST", "path": "hostedmodels/{hostedModelName}/predict", "id": "prediction.hostedmodels.predict"}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Input extends Google_Model {
|
||||
protected $__inputType = 'Google_InputInput';
|
||||
protected $__inputDataType = '';
|
||||
public $input;
|
||||
public function setInput(Google_InputInput $input) {
|
||||
$this->input = $input;
|
||||
}
|
||||
public function getInput() {
|
||||
return $this->input;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_InputInput extends Google_Model {
|
||||
public $csvInstance;
|
||||
public function setCsvInstance(/* array(Google_object) */ $csvInstance) {
|
||||
$this->assertIsArray($csvInstance, 'Google_object', __METHOD__);
|
||||
$this->csvInstance = $csvInstance;
|
||||
}
|
||||
public function getCsvInstance() {
|
||||
return $this->csvInstance;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Output extends Google_Model {
|
||||
public $kind;
|
||||
public $outputLabel;
|
||||
public $id;
|
||||
protected $__outputMultiType = 'Google_OutputOutputMulti';
|
||||
protected $__outputMultiDataType = 'array';
|
||||
public $outputMulti;
|
||||
public $outputValue;
|
||||
public $selfLink;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setOutputLabel($outputLabel) {
|
||||
$this->outputLabel = $outputLabel;
|
||||
}
|
||||
public function getOutputLabel() {
|
||||
return $this->outputLabel;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
public function setOutputMulti(/* array(Google_OutputOutputMulti) */ $outputMulti) {
|
||||
$this->assertIsArray($outputMulti, 'Google_OutputOutputMulti', __METHOD__);
|
||||
$this->outputMulti = $outputMulti;
|
||||
}
|
||||
public function getOutputMulti() {
|
||||
return $this->outputMulti;
|
||||
}
|
||||
public function setOutputValue($outputValue) {
|
||||
$this->outputValue = $outputValue;
|
||||
}
|
||||
public function getOutputValue() {
|
||||
return $this->outputValue;
|
||||
}
|
||||
public function setSelfLink($selfLink) {
|
||||
$this->selfLink = $selfLink;
|
||||
}
|
||||
public function getSelfLink() {
|
||||
return $this->selfLink;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_OutputOutputMulti extends Google_Model {
|
||||
public $score;
|
||||
public $label;
|
||||
public function setScore($score) {
|
||||
$this->score = $score;
|
||||
}
|
||||
public function getScore() {
|
||||
return $this->score;
|
||||
}
|
||||
public function setLabel($label) {
|
||||
$this->label = $label;
|
||||
}
|
||||
public function getLabel() {
|
||||
return $this->label;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Training extends Google_Model {
|
||||
public $kind;
|
||||
public $storageDataLocation;
|
||||
public $storagePMMLModelLocation;
|
||||
protected $__dataAnalysisType = 'Google_TrainingDataAnalysis';
|
||||
protected $__dataAnalysisDataType = '';
|
||||
public $dataAnalysis;
|
||||
public $trainingStatus;
|
||||
protected $__modelInfoType = 'Google_TrainingModelInfo';
|
||||
protected $__modelInfoDataType = '';
|
||||
public $modelInfo;
|
||||
public $storagePMMLLocation;
|
||||
public $id;
|
||||
public $selfLink;
|
||||
public $utility;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setStorageDataLocation($storageDataLocation) {
|
||||
$this->storageDataLocation = $storageDataLocation;
|
||||
}
|
||||
public function getStorageDataLocation() {
|
||||
return $this->storageDataLocation;
|
||||
}
|
||||
public function setStoragePMMLModelLocation($storagePMMLModelLocation) {
|
||||
$this->storagePMMLModelLocation = $storagePMMLModelLocation;
|
||||
}
|
||||
public function getStoragePMMLModelLocation() {
|
||||
return $this->storagePMMLModelLocation;
|
||||
}
|
||||
public function setDataAnalysis(Google_TrainingDataAnalysis $dataAnalysis) {
|
||||
$this->dataAnalysis = $dataAnalysis;
|
||||
}
|
||||
public function getDataAnalysis() {
|
||||
return $this->dataAnalysis;
|
||||
}
|
||||
public function setTrainingStatus($trainingStatus) {
|
||||
$this->trainingStatus = $trainingStatus;
|
||||
}
|
||||
public function getTrainingStatus() {
|
||||
return $this->trainingStatus;
|
||||
}
|
||||
public function setModelInfo(Google_TrainingModelInfo $modelInfo) {
|
||||
$this->modelInfo = $modelInfo;
|
||||
}
|
||||
public function getModelInfo() {
|
||||
return $this->modelInfo;
|
||||
}
|
||||
public function setStoragePMMLLocation($storagePMMLLocation) {
|
||||
$this->storagePMMLLocation = $storagePMMLLocation;
|
||||
}
|
||||
public function getStoragePMMLLocation() {
|
||||
return $this->storagePMMLLocation;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
public function setSelfLink($selfLink) {
|
||||
$this->selfLink = $selfLink;
|
||||
}
|
||||
public function getSelfLink() {
|
||||
return $this->selfLink;
|
||||
}
|
||||
public function setUtility(/* array(Google_double) */ $utility) {
|
||||
$this->assertIsArray($utility, 'Google_double', __METHOD__);
|
||||
$this->utility = $utility;
|
||||
}
|
||||
public function getUtility() {
|
||||
return $this->utility;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_TrainingDataAnalysis extends Google_Model {
|
||||
public $warnings;
|
||||
public function setWarnings(/* array(Google_string) */ $warnings) {
|
||||
$this->assertIsArray($warnings, 'Google_string', __METHOD__);
|
||||
$this->warnings = $warnings;
|
||||
}
|
||||
public function getWarnings() {
|
||||
return $this->warnings;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_TrainingModelInfo extends Google_Model {
|
||||
public $confusionMatrixRowTotals;
|
||||
public $numberLabels;
|
||||
public $confusionMatrix;
|
||||
public $meanSquaredError;
|
||||
public $modelType;
|
||||
public $numberInstances;
|
||||
public $classWeightedAccuracy;
|
||||
public $classificationAccuracy;
|
||||
public function setConfusionMatrixRowTotals($confusionMatrixRowTotals) {
|
||||
$this->confusionMatrixRowTotals = $confusionMatrixRowTotals;
|
||||
}
|
||||
public function getConfusionMatrixRowTotals() {
|
||||
return $this->confusionMatrixRowTotals;
|
||||
}
|
||||
public function setNumberLabels($numberLabels) {
|
||||
$this->numberLabels = $numberLabels;
|
||||
}
|
||||
public function getNumberLabels() {
|
||||
return $this->numberLabels;
|
||||
}
|
||||
public function setConfusionMatrix($confusionMatrix) {
|
||||
$this->confusionMatrix = $confusionMatrix;
|
||||
}
|
||||
public function getConfusionMatrix() {
|
||||
return $this->confusionMatrix;
|
||||
}
|
||||
public function setMeanSquaredError($meanSquaredError) {
|
||||
$this->meanSquaredError = $meanSquaredError;
|
||||
}
|
||||
public function getMeanSquaredError() {
|
||||
return $this->meanSquaredError;
|
||||
}
|
||||
public function setModelType($modelType) {
|
||||
$this->modelType = $modelType;
|
||||
}
|
||||
public function getModelType() {
|
||||
return $this->modelType;
|
||||
}
|
||||
public function setNumberInstances($numberInstances) {
|
||||
$this->numberInstances = $numberInstances;
|
||||
}
|
||||
public function getNumberInstances() {
|
||||
return $this->numberInstances;
|
||||
}
|
||||
public function setClassWeightedAccuracy($classWeightedAccuracy) {
|
||||
$this->classWeightedAccuracy = $classWeightedAccuracy;
|
||||
}
|
||||
public function getClassWeightedAccuracy() {
|
||||
return $this->classWeightedAccuracy;
|
||||
}
|
||||
public function setClassificationAccuracy($classificationAccuracy) {
|
||||
$this->classificationAccuracy = $classificationAccuracy;
|
||||
}
|
||||
public function getClassificationAccuracy() {
|
||||
return $this->classificationAccuracy;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Update extends Google_Model {
|
||||
public $csvInstance;
|
||||
public $label;
|
||||
public function setCsvInstance(/* array(Google_object) */ $csvInstance) {
|
||||
$this->assertIsArray($csvInstance, 'Google_object', __METHOD__);
|
||||
$this->csvInstance = $csvInstance;
|
||||
}
|
||||
public function getCsvInstance() {
|
||||
return $this->csvInstance;
|
||||
}
|
||||
public function setLabel($label) {
|
||||
$this->label = $label;
|
||||
}
|
||||
public function getLabel() {
|
||||
return $this->label;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,287 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "webResource" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $siteVerificationService = new Google_SiteVerificationService(...);
|
||||
* $webResource = $siteVerificationService->webResource;
|
||||
* </code>
|
||||
*/
|
||||
class Google_WebResourceServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Attempt verification of a website or domain. (webResource.insert)
|
||||
*
|
||||
* @param string $verificationMethod The method to use for verifying a site or domain.
|
||||
* @param Google_SiteVerificationWebResourceResource $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_SiteVerificationWebResourceResource
|
||||
*/
|
||||
public function insert($verificationMethod, Google_SiteVerificationWebResourceResource $postBody, $optParams = array()) {
|
||||
$params = array('verificationMethod' => $verificationMethod, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('insert', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_SiteVerificationWebResourceResource($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Get the most current data for a website or domain. (webResource.get)
|
||||
*
|
||||
* @param string $id The id of a verified site or domain.
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_SiteVerificationWebResourceResource
|
||||
*/
|
||||
public function get($id, $optParams = array()) {
|
||||
$params = array('id' => $id);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_SiteVerificationWebResourceResource($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Get the list of your verified websites and domains. (webResource.list)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_SiteVerificationWebResourceListResponse
|
||||
*/
|
||||
public function listWebResource($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_SiteVerificationWebResourceListResponse($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Modify the list of owners for your website or domain. (webResource.update)
|
||||
*
|
||||
* @param string $id The id of a verified site or domain.
|
||||
* @param Google_SiteVerificationWebResourceResource $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_SiteVerificationWebResourceResource
|
||||
*/
|
||||
public function update($id, Google_SiteVerificationWebResourceResource $postBody, $optParams = array()) {
|
||||
$params = array('id' => $id, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('update', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_SiteVerificationWebResourceResource($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Modify the list of owners for your website or domain. This method supports patch semantics.
|
||||
* (webResource.patch)
|
||||
*
|
||||
* @param string $id The id of a verified site or domain.
|
||||
* @param Google_SiteVerificationWebResourceResource $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_SiteVerificationWebResourceResource
|
||||
*/
|
||||
public function patch($id, Google_SiteVerificationWebResourceResource $postBody, $optParams = array()) {
|
||||
$params = array('id' => $id, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('patch', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_SiteVerificationWebResourceResource($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Get a verification token for placing on a website or domain. (webResource.getToken)
|
||||
*
|
||||
* @param Google_SiteVerificationWebResourceGettokenRequest $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_SiteVerificationWebResourceGettokenResponse
|
||||
*/
|
||||
public function getToken(Google_SiteVerificationWebResourceGettokenRequest $postBody, $optParams = array()) {
|
||||
$params = array('postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('getToken', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_SiteVerificationWebResourceGettokenResponse($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Relinquish ownership of a website or domain. (webResource.delete)
|
||||
*
|
||||
* @param string $id The id of a verified site or domain.
|
||||
* @param array $optParams Optional parameters.
|
||||
*/
|
||||
public function delete($id, $optParams = array()) {
|
||||
$params = array('id' => $id);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('delete', array($params));
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_SiteVerification (v1).
|
||||
*
|
||||
* <p>
|
||||
* Lets you programatically verify ownership of websites or domains with Google.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="http://code.google.com/apis/siteverification/" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_SiteVerificationService extends Google_Service {
|
||||
public $webResource;
|
||||
/**
|
||||
* Constructs the internal representation of the SiteVerification service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'siteVerification/v1/';
|
||||
$this->version = 'v1';
|
||||
$this->serviceName = 'siteVerification';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->webResource = new Google_WebResourceServiceResource($this, $this->serviceName, 'webResource', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/siteverification", "https://www.googleapis.com/auth/siteverification.verify_only"], "parameters": {"verificationMethod": {"required": true, "type": "string", "location": "query"}}, "request": {"$ref": "SiteVerificationWebResourceResource"}, "response": {"$ref": "SiteVerificationWebResourceResource"}, "httpMethod": "POST", "path": "webResource", "id": "siteVerification.webResource.insert"}, "get": {"scopes": ["https://www.googleapis.com/auth/siteverification"], "parameters": {"id": {"required": true, "type": "string", "location": "path"}}, "id": "siteVerification.webResource.get", "httpMethod": "GET", "path": "webResource/{id}", "response": {"$ref": "SiteVerificationWebResourceResource"}}, "list": {"scopes": ["https://www.googleapis.com/auth/siteverification"], "path": "webResource", "response": {"$ref": "SiteVerificationWebResourceListResponse"}, "id": "siteVerification.webResource.list", "httpMethod": "GET"}, "update": {"scopes": ["https://www.googleapis.com/auth/siteverification"], "parameters": {"id": {"required": true, "type": "string", "location": "path"}}, "request": {"$ref": "SiteVerificationWebResourceResource"}, "response": {"$ref": "SiteVerificationWebResourceResource"}, "httpMethod": "PUT", "path": "webResource/{id}", "id": "siteVerification.webResource.update"}, "patch": {"scopes": ["https://www.googleapis.com/auth/siteverification"], "parameters": {"id": {"required": true, "type": "string", "location": "path"}}, "request": {"$ref": "SiteVerificationWebResourceResource"}, "response": {"$ref": "SiteVerificationWebResourceResource"}, "httpMethod": "PATCH", "path": "webResource/{id}", "id": "siteVerification.webResource.patch"}, "getToken": {"scopes": ["https://www.googleapis.com/auth/siteverification", "https://www.googleapis.com/auth/siteverification.verify_only"], "request": {"$ref": "SiteVerificationWebResourceGettokenRequest"}, "response": {"$ref": "SiteVerificationWebResourceGettokenResponse"}, "httpMethod": "POST", "path": "token", "id": "siteVerification.webResource.getToken"}, "delete": {"scopes": ["https://www.googleapis.com/auth/siteverification"], "path": "webResource/{id}", "id": "siteVerification.webResource.delete", "parameters": {"id": {"required": true, "type": "string", "location": "path"}}, "httpMethod": "DELETE"}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_SiteVerificationWebResourceGettokenRequest extends Google_Model {
|
||||
public $verificationMethod;
|
||||
protected $__siteType = 'Google_SiteVerificationWebResourceGettokenRequestSite';
|
||||
protected $__siteDataType = '';
|
||||
public $site;
|
||||
public function setVerificationMethod($verificationMethod) {
|
||||
$this->verificationMethod = $verificationMethod;
|
||||
}
|
||||
public function getVerificationMethod() {
|
||||
return $this->verificationMethod;
|
||||
}
|
||||
public function setSite(Google_SiteVerificationWebResourceGettokenRequestSite $site) {
|
||||
$this->site = $site;
|
||||
}
|
||||
public function getSite() {
|
||||
return $this->site;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_SiteVerificationWebResourceGettokenRequestSite extends Google_Model {
|
||||
public $identifier;
|
||||
public $type;
|
||||
public function setIdentifier($identifier) {
|
||||
$this->identifier = $identifier;
|
||||
}
|
||||
public function getIdentifier() {
|
||||
return $this->identifier;
|
||||
}
|
||||
public function setType($type) {
|
||||
$this->type = $type;
|
||||
}
|
||||
public function getType() {
|
||||
return $this->type;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_SiteVerificationWebResourceGettokenResponse extends Google_Model {
|
||||
public $token;
|
||||
public $method;
|
||||
public function setToken($token) {
|
||||
$this->token = $token;
|
||||
}
|
||||
public function getToken() {
|
||||
return $this->token;
|
||||
}
|
||||
public function setMethod($method) {
|
||||
$this->method = $method;
|
||||
}
|
||||
public function getMethod() {
|
||||
return $this->method;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_SiteVerificationWebResourceListResponse extends Google_Model {
|
||||
protected $__itemsType = 'Google_SiteVerificationWebResourceResource';
|
||||
protected $__itemsDataType = 'array';
|
||||
public $items;
|
||||
public function setItems(/* array(Google_SiteVerificationWebResourceResource) */ $items) {
|
||||
$this->assertIsArray($items, 'Google_SiteVerificationWebResourceResource', __METHOD__);
|
||||
$this->items = $items;
|
||||
}
|
||||
public function getItems() {
|
||||
return $this->items;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_SiteVerificationWebResourceResource extends Google_Model {
|
||||
public $owners;
|
||||
public $id;
|
||||
protected $__siteType = 'Google_SiteVerificationWebResourceResourceSite';
|
||||
protected $__siteDataType = '';
|
||||
public $site;
|
||||
public function setOwners(/* array(Google_string) */ $owners) {
|
||||
$this->assertIsArray($owners, 'Google_string', __METHOD__);
|
||||
$this->owners = $owners;
|
||||
}
|
||||
public function getOwners() {
|
||||
return $this->owners;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
public function setSite(Google_SiteVerificationWebResourceResourceSite $site) {
|
||||
$this->site = $site;
|
||||
}
|
||||
public function getSite() {
|
||||
return $this->site;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_SiteVerificationWebResourceResourceSite extends Google_Model {
|
||||
public $identifier;
|
||||
public $type;
|
||||
public function setIdentifier($identifier) {
|
||||
$this->identifier = $identifier;
|
||||
}
|
||||
public function getIdentifier() {
|
||||
return $this->identifier;
|
||||
}
|
||||
public function setType($type) {
|
||||
$this->type = $type;
|
||||
}
|
||||
public function getType() {
|
||||
return $this->type;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,423 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "taskqueues" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $taskqueueService = new Google_TaskqueueService(...);
|
||||
* $taskqueues = $taskqueueService->taskqueues;
|
||||
* </code>
|
||||
*/
|
||||
class Google_TaskqueuesServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Get detailed information about a TaskQueue. (taskqueues.get)
|
||||
*
|
||||
* @param string $project The project under which the queue lies.
|
||||
* @param string $taskqueue The id of the taskqueue to get the properties of.
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param bool getStats Whether to get stats. Optional.
|
||||
* @return Google_TaskQueue
|
||||
*/
|
||||
public function get($project, $taskqueue, $optParams = array()) {
|
||||
$params = array('project' => $project, 'taskqueue' => $taskqueue);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_TaskQueue($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The "tasks" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $taskqueueService = new Google_TaskqueueService(...);
|
||||
* $tasks = $taskqueueService->tasks;
|
||||
* </code>
|
||||
*/
|
||||
class Google_TasksServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Insert a new task in a TaskQueue (tasks.insert)
|
||||
*
|
||||
* @param string $project The project under which the queue lies
|
||||
* @param string $taskqueue The taskqueue to insert the task into
|
||||
* @param Google_Task $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Task
|
||||
*/
|
||||
public function insert($project, $taskqueue, Google_Task $postBody, $optParams = array()) {
|
||||
$params = array('project' => $project, 'taskqueue' => $taskqueue, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('insert', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Task($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Get a particular task from a TaskQueue. (tasks.get)
|
||||
*
|
||||
* @param string $project The project under which the queue lies.
|
||||
* @param string $taskqueue The taskqueue in which the task belongs.
|
||||
* @param string $task The task to get properties of.
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Task
|
||||
*/
|
||||
public function get($project, $taskqueue, $task, $optParams = array()) {
|
||||
$params = array('project' => $project, 'taskqueue' => $taskqueue, 'task' => $task);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Task($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* List Tasks in a TaskQueue (tasks.list)
|
||||
*
|
||||
* @param string $project The project under which the queue lies.
|
||||
* @param string $taskqueue The id of the taskqueue to list tasks from.
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Tasks2
|
||||
*/
|
||||
public function listTasks($project, $taskqueue, $optParams = array()) {
|
||||
$params = array('project' => $project, 'taskqueue' => $taskqueue);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Tasks2($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Update tasks that are leased out of a TaskQueue. (tasks.update)
|
||||
*
|
||||
* @param string $project The project under which the queue lies.
|
||||
* @param string $taskqueue
|
||||
* @param string $task
|
||||
* @param int $newLeaseSeconds The new lease in seconds.
|
||||
* @param Google_Task $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Task
|
||||
*/
|
||||
public function update($project, $taskqueue, $task, $newLeaseSeconds, Google_Task $postBody, $optParams = array()) {
|
||||
$params = array('project' => $project, 'taskqueue' => $taskqueue, 'task' => $task, 'newLeaseSeconds' => $newLeaseSeconds, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('update', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Task($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Update tasks that are leased out of a TaskQueue. This method supports patch semantics.
|
||||
* (tasks.patch)
|
||||
*
|
||||
* @param string $project The project under which the queue lies.
|
||||
* @param string $taskqueue
|
||||
* @param string $task
|
||||
* @param int $newLeaseSeconds The new lease in seconds.
|
||||
* @param Google_Task $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Task
|
||||
*/
|
||||
public function patch($project, $taskqueue, $task, $newLeaseSeconds, Google_Task $postBody, $optParams = array()) {
|
||||
$params = array('project' => $project, 'taskqueue' => $taskqueue, 'task' => $task, 'newLeaseSeconds' => $newLeaseSeconds, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('patch', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Task($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Delete a task from a TaskQueue. (tasks.delete)
|
||||
*
|
||||
* @param string $project The project under which the queue lies.
|
||||
* @param string $taskqueue The taskqueue to delete a task from.
|
||||
* @param string $task The id of the task to delete.
|
||||
* @param array $optParams Optional parameters.
|
||||
*/
|
||||
public function delete($project, $taskqueue, $task, $optParams = array()) {
|
||||
$params = array('project' => $project, 'taskqueue' => $taskqueue, 'task' => $task);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('delete', array($params));
|
||||
return $data;
|
||||
}
|
||||
/**
|
||||
* Lease 1 or more tasks from a TaskQueue. (tasks.lease)
|
||||
*
|
||||
* @param string $project The project under which the queue lies.
|
||||
* @param string $taskqueue The taskqueue to lease a task from.
|
||||
* @param int $numTasks The number of tasks to lease.
|
||||
* @param int $leaseSecs The lease in seconds.
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param bool groupByTag When true, all returned tasks will have the same tag
|
||||
* @opt_param string tag The tag allowed for tasks in the response. Must only be specified if group_by_tag is true. If group_by_tag is true and tag is not specified the tag will be that of the oldest task by eta, i.e. the first available tag
|
||||
* @return Google_Tasks
|
||||
*/
|
||||
public function lease($project, $taskqueue, $numTasks, $leaseSecs, $optParams = array()) {
|
||||
$params = array('project' => $project, 'taskqueue' => $taskqueue, 'numTasks' => $numTasks, 'leaseSecs' => $leaseSecs);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('lease', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Tasks($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Taskqueue (v1beta2).
|
||||
*
|
||||
* <p>
|
||||
* Lets you access a Google App Engine Pull Task Queue over REST.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="http://code.google.com/appengine/docs/python/taskqueue/rest.html" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_TaskqueueService extends Google_Service {
|
||||
public $taskqueues;
|
||||
public $tasks;
|
||||
/**
|
||||
* Constructs the internal representation of the Taskqueue service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'taskqueue/v1beta2/projects/';
|
||||
$this->version = 'v1beta2';
|
||||
$this->serviceName = 'taskqueue';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->taskqueues = new Google_TaskqueuesServiceResource($this, $this->serviceName, 'taskqueues', json_decode('{"methods": {"get": {"scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"], "parameters": {"project": {"required": true, "type": "string", "location": "path"}, "taskqueue": {"required": true, "type": "string", "location": "path"}, "getStats": {"type": "boolean", "location": "query"}}, "id": "taskqueue.taskqueues.get", "httpMethod": "GET", "path": "{project}/taskqueues/{taskqueue}", "response": {"$ref": "TaskQueue"}}}}', true));
|
||||
$this->tasks = new Google_TasksServiceResource($this, $this->serviceName, 'tasks', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"], "parameters": {"project": {"required": true, "type": "string", "location": "path"}, "taskqueue": {"required": true, "type": "string", "location": "path"}}, "request": {"$ref": "Task"}, "response": {"$ref": "Task"}, "httpMethod": "POST", "path": "{project}/taskqueues/{taskqueue}/tasks", "id": "taskqueue.tasks.insert"}, "get": {"scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"], "parameters": {"project": {"required": true, "type": "string", "location": "path"}, "taskqueue": {"required": true, "type": "string", "location": "path"}, "task": {"required": true, "type": "string", "location": "path"}}, "id": "taskqueue.tasks.get", "httpMethod": "GET", "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", "response": {"$ref": "Task"}}, "list": {"scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"], "parameters": {"project": {"required": true, "type": "string", "location": "path"}, "taskqueue": {"required": true, "type": "string", "location": "path"}}, "id": "taskqueue.tasks.list", "httpMethod": "GET", "path": "{project}/taskqueues/{taskqueue}/tasks", "response": {"$ref": "Tasks2"}}, "update": {"scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"], "parameters": {"project": {"required": true, "type": "string", "location": "path"}, "taskqueue": {"required": true, "type": "string", "location": "path"}, "task": {"required": true, "type": "string", "location": "path"}, "newLeaseSeconds": {"required": true, "type": "integer", "location": "query", "format": "int32"}}, "request": {"$ref": "Task"}, "response": {"$ref": "Task"}, "httpMethod": "POST", "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", "id": "taskqueue.tasks.update"}, "patch": {"scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"], "parameters": {"project": {"required": true, "type": "string", "location": "path"}, "taskqueue": {"required": true, "type": "string", "location": "path"}, "task": {"required": true, "type": "string", "location": "path"}, "newLeaseSeconds": {"required": true, "type": "integer", "location": "query", "format": "int32"}}, "request": {"$ref": "Task"}, "response": {"$ref": "Task"}, "httpMethod": "PATCH", "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", "id": "taskqueue.tasks.patch"}, "delete": {"scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"], "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", "id": "taskqueue.tasks.delete", "parameters": {"project": {"required": true, "type": "string", "location": "path"}, "taskqueue": {"required": true, "type": "string", "location": "path"}, "task": {"required": true, "type": "string", "location": "path"}}, "httpMethod": "DELETE"}, "lease": {"scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"], "parameters": {"groupByTag": {"type": "boolean", "location": "query"}, "leaseSecs": {"required": true, "type": "integer", "location": "query", "format": "int32"}, "project": {"required": true, "type": "string", "location": "path"}, "taskqueue": {"required": true, "type": "string", "location": "path"}, "tag": {"type": "string", "location": "query"}, "numTasks": {"required": true, "type": "integer", "location": "query", "format": "int32"}}, "id": "taskqueue.tasks.lease", "httpMethod": "POST", "path": "{project}/taskqueues/{taskqueue}/tasks/lease", "response": {"$ref": "Tasks"}}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Task extends Google_Model {
|
||||
public $kind;
|
||||
public $leaseTimestamp;
|
||||
public $id;
|
||||
public $tag;
|
||||
public $payloadBase64;
|
||||
public $queueName;
|
||||
public $enqueueTimestamp;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setLeaseTimestamp($leaseTimestamp) {
|
||||
$this->leaseTimestamp = $leaseTimestamp;
|
||||
}
|
||||
public function getLeaseTimestamp() {
|
||||
return $this->leaseTimestamp;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
public function setTag($tag) {
|
||||
$this->tag = $tag;
|
||||
}
|
||||
public function getTag() {
|
||||
return $this->tag;
|
||||
}
|
||||
public function setPayloadBase64($payloadBase64) {
|
||||
$this->payloadBase64 = $payloadBase64;
|
||||
}
|
||||
public function getPayloadBase64() {
|
||||
return $this->payloadBase64;
|
||||
}
|
||||
public function setQueueName($queueName) {
|
||||
$this->queueName = $queueName;
|
||||
}
|
||||
public function getQueueName() {
|
||||
return $this->queueName;
|
||||
}
|
||||
public function setEnqueueTimestamp($enqueueTimestamp) {
|
||||
$this->enqueueTimestamp = $enqueueTimestamp;
|
||||
}
|
||||
public function getEnqueueTimestamp() {
|
||||
return $this->enqueueTimestamp;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_TaskQueue extends Google_Model {
|
||||
public $kind;
|
||||
protected $__statsType = 'Google_TaskQueueStats';
|
||||
protected $__statsDataType = '';
|
||||
public $stats;
|
||||
public $id;
|
||||
public $maxLeases;
|
||||
protected $__aclType = 'Google_TaskQueueAcl';
|
||||
protected $__aclDataType = '';
|
||||
public $acl;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setStats(Google_TaskQueueStats $stats) {
|
||||
$this->stats = $stats;
|
||||
}
|
||||
public function getStats() {
|
||||
return $this->stats;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
public function setMaxLeases($maxLeases) {
|
||||
$this->maxLeases = $maxLeases;
|
||||
}
|
||||
public function getMaxLeases() {
|
||||
return $this->maxLeases;
|
||||
}
|
||||
public function setAcl(Google_TaskQueueAcl $acl) {
|
||||
$this->acl = $acl;
|
||||
}
|
||||
public function getAcl() {
|
||||
return $this->acl;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_TaskQueueAcl extends Google_Model {
|
||||
public $consumerEmails;
|
||||
public $producerEmails;
|
||||
public $adminEmails;
|
||||
public function setConsumerEmails(/* array(Google_string) */ $consumerEmails) {
|
||||
$this->assertIsArray($consumerEmails, 'Google_string', __METHOD__);
|
||||
$this->consumerEmails = $consumerEmails;
|
||||
}
|
||||
public function getConsumerEmails() {
|
||||
return $this->consumerEmails;
|
||||
}
|
||||
public function setProducerEmails(/* array(Google_string) */ $producerEmails) {
|
||||
$this->assertIsArray($producerEmails, 'Google_string', __METHOD__);
|
||||
$this->producerEmails = $producerEmails;
|
||||
}
|
||||
public function getProducerEmails() {
|
||||
return $this->producerEmails;
|
||||
}
|
||||
public function setAdminEmails(/* array(Google_string) */ $adminEmails) {
|
||||
$this->assertIsArray($adminEmails, 'Google_string', __METHOD__);
|
||||
$this->adminEmails = $adminEmails;
|
||||
}
|
||||
public function getAdminEmails() {
|
||||
return $this->adminEmails;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_TaskQueueStats extends Google_Model {
|
||||
public $oldestTask;
|
||||
public $leasedLastMinute;
|
||||
public $totalTasks;
|
||||
public $leasedLastHour;
|
||||
public function setOldestTask($oldestTask) {
|
||||
$this->oldestTask = $oldestTask;
|
||||
}
|
||||
public function getOldestTask() {
|
||||
return $this->oldestTask;
|
||||
}
|
||||
public function setLeasedLastMinute($leasedLastMinute) {
|
||||
$this->leasedLastMinute = $leasedLastMinute;
|
||||
}
|
||||
public function getLeasedLastMinute() {
|
||||
return $this->leasedLastMinute;
|
||||
}
|
||||
public function setTotalTasks($totalTasks) {
|
||||
$this->totalTasks = $totalTasks;
|
||||
}
|
||||
public function getTotalTasks() {
|
||||
return $this->totalTasks;
|
||||
}
|
||||
public function setLeasedLastHour($leasedLastHour) {
|
||||
$this->leasedLastHour = $leasedLastHour;
|
||||
}
|
||||
public function getLeasedLastHour() {
|
||||
return $this->leasedLastHour;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Tasks extends Google_Model {
|
||||
protected $__itemsType = 'Google_Task';
|
||||
protected $__itemsDataType = 'array';
|
||||
public $items;
|
||||
public $kind;
|
||||
public function setItems(/* array(Google_Task) */ $items) {
|
||||
$this->assertIsArray($items, 'Google_Task', __METHOD__);
|
||||
$this->items = $items;
|
||||
}
|
||||
public function getItems() {
|
||||
return $this->items;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Tasks2 extends Google_Model {
|
||||
protected $__itemsType = 'Google_Task';
|
||||
protected $__itemsDataType = 'array';
|
||||
public $items;
|
||||
public $kind;
|
||||
public function setItems(/* array(Google_Task) */ $items) {
|
||||
$this->assertIsArray($items, 'Google_Task', __METHOD__);
|
||||
$this->items = $items;
|
||||
}
|
||||
public function getItems() {
|
||||
return $this->items;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,580 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "tasks" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $tasksService = new Google_TasksService(...);
|
||||
* $tasks = $tasksService->tasks;
|
||||
* </code>
|
||||
*/
|
||||
class Google_TasksServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Creates a new task on the specified task list. (tasks.insert)
|
||||
*
|
||||
* @param string $tasklist Task list identifier.
|
||||
* @param Google_Task $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string parent Parent task identifier. If the task is created at the top level, this parameter is omitted. Optional.
|
||||
* @opt_param string previous Previous sibling task identifier. If the task is created at the first position among its siblings, this parameter is omitted. Optional.
|
||||
* @return Google_Task
|
||||
*/
|
||||
public function insert($tasklist, Google_Task $postBody, $optParams = array()) {
|
||||
$params = array('tasklist' => $tasklist, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('insert', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Task($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Returns the specified task. (tasks.get)
|
||||
*
|
||||
* @param string $tasklist Task list identifier.
|
||||
* @param string $task Task identifier.
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Task
|
||||
*/
|
||||
public function get($tasklist, $task, $optParams = array()) {
|
||||
$params = array('tasklist' => $tasklist, 'task' => $task);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Task($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Clears all completed tasks from the specified task list. The affected tasks will be marked as
|
||||
* 'hidden' and no longer be returned by default when retrieving all tasks for a task list.
|
||||
* (tasks.clear)
|
||||
*
|
||||
* @param string $tasklist Task list identifier.
|
||||
* @param array $optParams Optional parameters.
|
||||
*/
|
||||
public function clear($tasklist, $optParams = array()) {
|
||||
$params = array('tasklist' => $tasklist);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('clear', array($params));
|
||||
return $data;
|
||||
}
|
||||
/**
|
||||
* Moves the specified task to another position in the task list. This can include putting it as a
|
||||
* child task under a new parent and/or move it to a different position among its sibling tasks.
|
||||
* (tasks.move)
|
||||
*
|
||||
* @param string $tasklist Task list identifier.
|
||||
* @param string $task Task identifier.
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string parent New parent task identifier. If the task is moved to the top level, this parameter is omitted. Optional.
|
||||
* @opt_param string previous New previous sibling task identifier. If the task is moved to the first position among its siblings, this parameter is omitted. Optional.
|
||||
* @return Google_Task
|
||||
*/
|
||||
public function move($tasklist, $task, $optParams = array()) {
|
||||
$params = array('tasklist' => $tasklist, 'task' => $task);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('move', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Task($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Returns all tasks in the specified task list. (tasks.list)
|
||||
*
|
||||
* @param string $tasklist Task list identifier.
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string dueMax Upper bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date.
|
||||
* @opt_param bool showDeleted Flag indicating whether deleted tasks are returned in the result. Optional. The default is False.
|
||||
* @opt_param string updatedMin Lower bound for a task's last modification time (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by last modification time.
|
||||
* @opt_param string completedMin Lower bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date.
|
||||
* @opt_param string maxResults Maximum number of task lists returned on one page. Optional. The default is 100.
|
||||
* @opt_param bool showCompleted Flag indicating whether completed tasks are returned in the result. Optional. The default is True.
|
||||
* @opt_param string pageToken Token specifying the result page to return. Optional.
|
||||
* @opt_param string completedMax Upper bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date.
|
||||
* @opt_param bool showHidden Flag indicating whether hidden tasks are returned in the result. Optional. The default is False.
|
||||
* @opt_param string dueMin Lower bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date.
|
||||
* @return Google_Tasks
|
||||
*/
|
||||
public function listTasks($tasklist, $optParams = array()) {
|
||||
$params = array('tasklist' => $tasklist);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Tasks($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Updates the specified task. (tasks.update)
|
||||
*
|
||||
* @param string $tasklist Task list identifier.
|
||||
* @param string $task Task identifier.
|
||||
* @param Google_Task $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Task
|
||||
*/
|
||||
public function update($tasklist, $task, Google_Task $postBody, $optParams = array()) {
|
||||
$params = array('tasklist' => $tasklist, 'task' => $task, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('update', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Task($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Updates the specified task. This method supports patch semantics. (tasks.patch)
|
||||
*
|
||||
* @param string $tasklist Task list identifier.
|
||||
* @param string $task Task identifier.
|
||||
* @param Google_Task $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Task
|
||||
*/
|
||||
public function patch($tasklist, $task, Google_Task $postBody, $optParams = array()) {
|
||||
$params = array('tasklist' => $tasklist, 'task' => $task, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('patch', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Task($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Deletes the specified task from the task list. (tasks.delete)
|
||||
*
|
||||
* @param string $tasklist Task list identifier.
|
||||
* @param string $task Task identifier.
|
||||
* @param array $optParams Optional parameters.
|
||||
*/
|
||||
public function delete($tasklist, $task, $optParams = array()) {
|
||||
$params = array('tasklist' => $tasklist, 'task' => $task);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('delete', array($params));
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The "tasklists" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $tasksService = new Google_TasksService(...);
|
||||
* $tasklists = $tasksService->tasklists;
|
||||
* </code>
|
||||
*/
|
||||
class Google_TasklistsServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Creates a new task list and adds it to the authenticated user's task lists. (tasklists.insert)
|
||||
*
|
||||
* @param Google_TaskList $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_TaskList
|
||||
*/
|
||||
public function insert(Google_TaskList $postBody, $optParams = array()) {
|
||||
$params = array('postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('insert', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_TaskList($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Returns the authenticated user's specified task list. (tasklists.get)
|
||||
*
|
||||
* @param string $tasklist Task list identifier.
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_TaskList
|
||||
*/
|
||||
public function get($tasklist, $optParams = array()) {
|
||||
$params = array('tasklist' => $tasklist);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_TaskList($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Returns all the authenticated user's task lists. (tasklists.list)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string pageToken Token specifying the result page to return. Optional.
|
||||
* @opt_param string maxResults Maximum number of task lists returned on one page. Optional. The default is 100.
|
||||
* @return Google_TaskLists
|
||||
*/
|
||||
public function listTasklists($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_TaskLists($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Updates the authenticated user's specified task list. (tasklists.update)
|
||||
*
|
||||
* @param string $tasklist Task list identifier.
|
||||
* @param Google_TaskList $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_TaskList
|
||||
*/
|
||||
public function update($tasklist, Google_TaskList $postBody, $optParams = array()) {
|
||||
$params = array('tasklist' => $tasklist, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('update', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_TaskList($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Updates the authenticated user's specified task list. This method supports patch semantics.
|
||||
* (tasklists.patch)
|
||||
*
|
||||
* @param string $tasklist Task list identifier.
|
||||
* @param Google_TaskList $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_TaskList
|
||||
*/
|
||||
public function patch($tasklist, Google_TaskList $postBody, $optParams = array()) {
|
||||
$params = array('tasklist' => $tasklist, 'postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('patch', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_TaskList($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Deletes the authenticated user's specified task list. (tasklists.delete)
|
||||
*
|
||||
* @param string $tasklist Task list identifier.
|
||||
* @param array $optParams Optional parameters.
|
||||
*/
|
||||
public function delete($tasklist, $optParams = array()) {
|
||||
$params = array('tasklist' => $tasklist);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('delete', array($params));
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Tasks (v1).
|
||||
*
|
||||
* <p>
|
||||
* Lets you manage your tasks and task lists.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="http://code.google.com/apis/tasks/v1/using.html" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_TasksService extends Google_Service {
|
||||
public $tasks;
|
||||
public $tasklists;
|
||||
/**
|
||||
* Constructs the internal representation of the Tasks service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'tasks/v1/';
|
||||
$this->version = 'v1';
|
||||
$this->serviceName = 'tasks';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->tasks = new Google_TasksServiceResource($this, $this->serviceName, 'tasks', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/tasks"], "parameters": {"tasklist": {"required": true, "type": "string", "location": "path"}, "parent": {"type": "string", "location": "query"}, "previous": {"type": "string", "location": "query"}}, "request": {"$ref": "Task"}, "response": {"$ref": "Task"}, "httpMethod": "POST", "path": "lists/{tasklist}/tasks", "id": "tasks.tasks.insert"}, "get": {"scopes": ["https://www.googleapis.com/auth/tasks", "https://www.googleapis.com/auth/tasks.readonly"], "parameters": {"tasklist": {"required": true, "type": "string", "location": "path"}, "task": {"required": true, "type": "string", "location": "path"}}, "id": "tasks.tasks.get", "httpMethod": "GET", "path": "lists/{tasklist}/tasks/{task}", "response": {"$ref": "Task"}}, "clear": {"scopes": ["https://www.googleapis.com/auth/tasks"], "path": "lists/{tasklist}/clear", "id": "tasks.tasks.clear", "parameters": {"tasklist": {"required": true, "type": "string", "location": "path"}}, "httpMethod": "POST"}, "move": {"scopes": ["https://www.googleapis.com/auth/tasks"], "parameters": {"task": {"required": true, "type": "string", "location": "path"}, "tasklist": {"required": true, "type": "string", "location": "path"}, "parent": {"type": "string", "location": "query"}, "previous": {"type": "string", "location": "query"}}, "id": "tasks.tasks.move", "httpMethod": "POST", "path": "lists/{tasklist}/tasks/{task}/move", "response": {"$ref": "Task"}}, "list": {"scopes": ["https://www.googleapis.com/auth/tasks", "https://www.googleapis.com/auth/tasks.readonly"], "parameters": {"dueMax": {"type": "string", "location": "query"}, "tasklist": {"required": true, "type": "string", "location": "path"}, "showDeleted": {"type": "boolean", "location": "query"}, "updatedMin": {"type": "string", "location": "query"}, "completedMin": {"type": "string", "location": "query"}, "maxResults": {"type": "string", "location": "query", "format": "int64"}, "showCompleted": {"type": "boolean", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "completedMax": {"type": "string", "location": "query"}, "showHidden": {"type": "boolean", "location": "query"}, "dueMin": {"type": "string", "location": "query"}}, "id": "tasks.tasks.list", "httpMethod": "GET", "path": "lists/{tasklist}/tasks", "response": {"$ref": "Tasks"}}, "update": {"scopes": ["https://www.googleapis.com/auth/tasks"], "parameters": {"tasklist": {"required": true, "type": "string", "location": "path"}, "task": {"required": true, "type": "string", "location": "path"}}, "request": {"$ref": "Task"}, "response": {"$ref": "Task"}, "httpMethod": "PUT", "path": "lists/{tasklist}/tasks/{task}", "id": "tasks.tasks.update"}, "patch": {"scopes": ["https://www.googleapis.com/auth/tasks"], "parameters": {"tasklist": {"required": true, "type": "string", "location": "path"}, "task": {"required": true, "type": "string", "location": "path"}}, "request": {"$ref": "Task"}, "response": {"$ref": "Task"}, "httpMethod": "PATCH", "path": "lists/{tasklist}/tasks/{task}", "id": "tasks.tasks.patch"}, "delete": {"scopes": ["https://www.googleapis.com/auth/tasks"], "path": "lists/{tasklist}/tasks/{task}", "id": "tasks.tasks.delete", "parameters": {"tasklist": {"required": true, "type": "string", "location": "path"}, "task": {"required": true, "type": "string", "location": "path"}}, "httpMethod": "DELETE"}}}', true));
|
||||
$this->tasklists = new Google_TasklistsServiceResource($this, $this->serviceName, 'tasklists', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/tasks"], "request": {"$ref": "TaskList"}, "response": {"$ref": "TaskList"}, "httpMethod": "POST", "path": "users/@me/lists", "id": "tasks.tasklists.insert"}, "get": {"scopes": ["https://www.googleapis.com/auth/tasks", "https://www.googleapis.com/auth/tasks.readonly"], "parameters": {"tasklist": {"required": true, "type": "string", "location": "path"}}, "id": "tasks.tasklists.get", "httpMethod": "GET", "path": "users/@me/lists/{tasklist}", "response": {"$ref": "TaskList"}}, "list": {"scopes": ["https://www.googleapis.com/auth/tasks", "https://www.googleapis.com/auth/tasks.readonly"], "parameters": {"pageToken": {"type": "string", "location": "query"}, "maxResults": {"type": "string", "location": "query", "format": "int64"}}, "response": {"$ref": "TaskLists"}, "httpMethod": "GET", "path": "users/@me/lists", "id": "tasks.tasklists.list"}, "update": {"scopes": ["https://www.googleapis.com/auth/tasks"], "parameters": {"tasklist": {"required": true, "type": "string", "location": "path"}}, "request": {"$ref": "TaskList"}, "response": {"$ref": "TaskList"}, "httpMethod": "PUT", "path": "users/@me/lists/{tasklist}", "id": "tasks.tasklists.update"}, "patch": {"scopes": ["https://www.googleapis.com/auth/tasks"], "parameters": {"tasklist": {"required": true, "type": "string", "location": "path"}}, "request": {"$ref": "TaskList"}, "response": {"$ref": "TaskList"}, "httpMethod": "PATCH", "path": "users/@me/lists/{tasklist}", "id": "tasks.tasklists.patch"}, "delete": {"scopes": ["https://www.googleapis.com/auth/tasks"], "path": "users/@me/lists/{tasklist}", "id": "tasks.tasklists.delete", "parameters": {"tasklist": {"required": true, "type": "string", "location": "path"}}, "httpMethod": "DELETE"}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Task extends Google_Model {
|
||||
public $status;
|
||||
public $kind;
|
||||
public $updated;
|
||||
public $parent;
|
||||
protected $__linksType = 'Google_TaskLinks';
|
||||
protected $__linksDataType = 'array';
|
||||
public $links;
|
||||
public $title;
|
||||
public $deleted;
|
||||
public $completed;
|
||||
public $due;
|
||||
public $etag;
|
||||
public $notes;
|
||||
public $position;
|
||||
public $hidden;
|
||||
public $id;
|
||||
public $selfLink;
|
||||
public function setStatus($status) {
|
||||
$this->status = $status;
|
||||
}
|
||||
public function getStatus() {
|
||||
return $this->status;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setUpdated($updated) {
|
||||
$this->updated = $updated;
|
||||
}
|
||||
public function getUpdated() {
|
||||
return $this->updated;
|
||||
}
|
||||
public function setParent($parent) {
|
||||
$this->parent = $parent;
|
||||
}
|
||||
public function getParent() {
|
||||
return $this->parent;
|
||||
}
|
||||
public function setLinks(/* array(Google_TaskLinks) */ $links) {
|
||||
$this->assertIsArray($links, 'Google_TaskLinks', __METHOD__);
|
||||
$this->links = $links;
|
||||
}
|
||||
public function getLinks() {
|
||||
return $this->links;
|
||||
}
|
||||
public function setTitle($title) {
|
||||
$this->title = $title;
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->title;
|
||||
}
|
||||
public function setDeleted($deleted) {
|
||||
$this->deleted = $deleted;
|
||||
}
|
||||
public function getDeleted() {
|
||||
return $this->deleted;
|
||||
}
|
||||
public function setCompleted($completed) {
|
||||
$this->completed = $completed;
|
||||
}
|
||||
public function getCompleted() {
|
||||
return $this->completed;
|
||||
}
|
||||
public function setDue($due) {
|
||||
$this->due = $due;
|
||||
}
|
||||
public function getDue() {
|
||||
return $this->due;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
public function setNotes($notes) {
|
||||
$this->notes = $notes;
|
||||
}
|
||||
public function getNotes() {
|
||||
return $this->notes;
|
||||
}
|
||||
public function setPosition($position) {
|
||||
$this->position = $position;
|
||||
}
|
||||
public function getPosition() {
|
||||
return $this->position;
|
||||
}
|
||||
public function setHidden($hidden) {
|
||||
$this->hidden = $hidden;
|
||||
}
|
||||
public function getHidden() {
|
||||
return $this->hidden;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
public function setSelfLink($selfLink) {
|
||||
$this->selfLink = $selfLink;
|
||||
}
|
||||
public function getSelfLink() {
|
||||
return $this->selfLink;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_TaskLinks extends Google_Model {
|
||||
public $type;
|
||||
public $link;
|
||||
public $description;
|
||||
public function setType($type) {
|
||||
$this->type = $type;
|
||||
}
|
||||
public function getType() {
|
||||
return $this->type;
|
||||
}
|
||||
public function setLink($link) {
|
||||
$this->link = $link;
|
||||
}
|
||||
public function getLink() {
|
||||
return $this->link;
|
||||
}
|
||||
public function setDescription($description) {
|
||||
$this->description = $description;
|
||||
}
|
||||
public function getDescription() {
|
||||
return $this->description;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_TaskList extends Google_Model {
|
||||
public $kind;
|
||||
public $title;
|
||||
public $updated;
|
||||
public $etag;
|
||||
public $id;
|
||||
public $selfLink;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setTitle($title) {
|
||||
$this->title = $title;
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->title;
|
||||
}
|
||||
public function setUpdated($updated) {
|
||||
$this->updated = $updated;
|
||||
}
|
||||
public function getUpdated() {
|
||||
return $this->updated;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
public function setSelfLink($selfLink) {
|
||||
$this->selfLink = $selfLink;
|
||||
}
|
||||
public function getSelfLink() {
|
||||
return $this->selfLink;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_TaskLists extends Google_Model {
|
||||
public $nextPageToken;
|
||||
protected $__itemsType = 'Google_TaskList';
|
||||
protected $__itemsDataType = 'array';
|
||||
public $items;
|
||||
public $kind;
|
||||
public $etag;
|
||||
public function setNextPageToken($nextPageToken) {
|
||||
$this->nextPageToken = $nextPageToken;
|
||||
}
|
||||
public function getNextPageToken() {
|
||||
return $this->nextPageToken;
|
||||
}
|
||||
public function setItems(/* array(Google_TaskList) */ $items) {
|
||||
$this->assertIsArray($items, 'Google_TaskList', __METHOD__);
|
||||
$this->items = $items;
|
||||
}
|
||||
public function getItems() {
|
||||
return $this->items;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Tasks extends Google_Model {
|
||||
public $nextPageToken;
|
||||
protected $__itemsType = 'Google_Task';
|
||||
protected $__itemsDataType = 'array';
|
||||
public $items;
|
||||
public $kind;
|
||||
public $etag;
|
||||
public function setNextPageToken($nextPageToken) {
|
||||
$this->nextPageToken = $nextPageToken;
|
||||
}
|
||||
public function getNextPageToken() {
|
||||
return $this->nextPageToken;
|
||||
}
|
||||
public function setItems(/* array(Google_Task) */ $items) {
|
||||
$this->assertIsArray($items, 'Google_Task', __METHOD__);
|
||||
$this->items = $items;
|
||||
}
|
||||
public function getItems() {
|
||||
return $this->items;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,244 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "languages" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $translateService = new Google_TranslateService(...);
|
||||
* $languages = $translateService->languages;
|
||||
* </code>
|
||||
*/
|
||||
class Google_LanguagesServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* List the source/target languages supported by the API (languages.list)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string target the language and collation in which the localized results should be returned
|
||||
* @return Google_LanguagesListResponse
|
||||
*/
|
||||
public function listLanguages($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_LanguagesListResponse($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The "detections" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $translateService = new Google_TranslateService(...);
|
||||
* $detections = $translateService->detections;
|
||||
* </code>
|
||||
*/
|
||||
class Google_DetectionsServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Detect the language of text. (detections.list)
|
||||
*
|
||||
* @param string $q The text to detect
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_DetectionsListResponse
|
||||
*/
|
||||
public function listDetections($q, $optParams = array()) {
|
||||
$params = array('q' => $q);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_DetectionsListResponse($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The "translations" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $translateService = new Google_TranslateService(...);
|
||||
* $translations = $translateService->translations;
|
||||
* </code>
|
||||
*/
|
||||
class Google_TranslationsServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Returns text translations from one language to another. (translations.list)
|
||||
*
|
||||
* @param string $q The text to translate
|
||||
* @param string $target The target language into which the text should be translated
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string source The source language of the text
|
||||
* @opt_param string format The format of the text
|
||||
* @opt_param string cid The customization id for translate
|
||||
* @return Google_TranslationsListResponse
|
||||
*/
|
||||
public function listTranslations($q, $target, $optParams = array()) {
|
||||
$params = array('q' => $q, 'target' => $target);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_TranslationsListResponse($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Translate (v2).
|
||||
*
|
||||
* <p>
|
||||
* Lets you translate text from one language to another
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="http://code.google.com/apis/language/translate/v2/using_rest.html" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_TranslateService extends Google_Service {
|
||||
public $languages;
|
||||
public $detections;
|
||||
public $translations;
|
||||
/**
|
||||
* Constructs the internal representation of the Translate service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'language/translate/';
|
||||
$this->version = 'v2';
|
||||
$this->serviceName = 'translate';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->languages = new Google_LanguagesServiceResource($this, $this->serviceName, 'languages', json_decode('{"methods": {"list": {"httpMethod": "GET", "response": {"$ref": "LanguagesListResponse"}, "id": "language.languages.list", "parameters": {"target": {"type": "string", "location": "query"}}, "path": "v2/languages"}}}', true));
|
||||
$this->detections = new Google_DetectionsServiceResource($this, $this->serviceName, 'detections', json_decode('{"methods": {"list": {"httpMethod": "GET", "response": {"$ref": "DetectionsListResponse"}, "id": "language.detections.list", "parameters": {"q": {"repeated": true, "required": true, "type": "string", "location": "query"}}, "path": "v2/detect"}}}', true));
|
||||
$this->translations = new Google_TranslationsServiceResource($this, $this->serviceName, 'translations', json_decode('{"methods": {"list": {"httpMethod": "GET", "response": {"$ref": "TranslationsListResponse"}, "id": "language.translations.list", "parameters": {"q": {"repeated": true, "required": true, "type": "string", "location": "query"}, "source": {"type": "string", "location": "query"}, "format": {"enum": ["html", "text"], "type": "string", "location": "query"}, "target": {"required": true, "type": "string", "location": "query"}, "cid": {"repeated": true, "type": "string", "location": "query"}}, "path": "v2"}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_DetectionsListResponse extends Google_Model {
|
||||
protected $__detectionsType = 'Google_DetectionsResourceItems';
|
||||
protected $__detectionsDataType = 'array';
|
||||
public $detections;
|
||||
public function setDetections(/* array(Google_DetectionsResourceItems) */ $detections) {
|
||||
$this->assertIsArray($detections, 'Google_DetectionsResourceItems', __METHOD__);
|
||||
$this->detections = $detections;
|
||||
}
|
||||
public function getDetections() {
|
||||
return $this->detections;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_DetectionsResourceItems extends Google_Model {
|
||||
public $isReliable;
|
||||
public $confidence;
|
||||
public $language;
|
||||
public function setIsReliable($isReliable) {
|
||||
$this->isReliable = $isReliable;
|
||||
}
|
||||
public function getIsReliable() {
|
||||
return $this->isReliable;
|
||||
}
|
||||
public function setConfidence($confidence) {
|
||||
$this->confidence = $confidence;
|
||||
}
|
||||
public function getConfidence() {
|
||||
return $this->confidence;
|
||||
}
|
||||
public function setLanguage($language) {
|
||||
$this->language = $language;
|
||||
}
|
||||
public function getLanguage() {
|
||||
return $this->language;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_LanguagesListResponse extends Google_Model {
|
||||
protected $__languagesType = 'Google_LanguagesResource';
|
||||
protected $__languagesDataType = 'array';
|
||||
public $languages;
|
||||
public function setLanguages(/* array(Google_LanguagesResource) */ $languages) {
|
||||
$this->assertIsArray($languages, 'Google_LanguagesResource', __METHOD__);
|
||||
$this->languages = $languages;
|
||||
}
|
||||
public function getLanguages() {
|
||||
return $this->languages;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_LanguagesResource extends Google_Model {
|
||||
public $name;
|
||||
public $language;
|
||||
public function setName($name) {
|
||||
$this->name = $name;
|
||||
}
|
||||
public function getName() {
|
||||
return $this->name;
|
||||
}
|
||||
public function setLanguage($language) {
|
||||
$this->language = $language;
|
||||
}
|
||||
public function getLanguage() {
|
||||
return $this->language;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_TranslationsListResponse extends Google_Model {
|
||||
protected $__translationsType = 'Google_TranslationsResource';
|
||||
protected $__translationsDataType = 'array';
|
||||
public $translations;
|
||||
public function setTranslations(/* array(Google_TranslationsResource) */ $translations) {
|
||||
$this->assertIsArray($translations, 'Google_TranslationsResource', __METHOD__);
|
||||
$this->translations = $translations;
|
||||
}
|
||||
public function getTranslations() {
|
||||
return $this->translations;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_TranslationsResource extends Google_Model {
|
||||
public $detectedSourceLanguage;
|
||||
public $translatedText;
|
||||
public function setDetectedSourceLanguage($detectedSourceLanguage) {
|
||||
$this->detectedSourceLanguage = $detectedSourceLanguage;
|
||||
}
|
||||
public function getDetectedSourceLanguage() {
|
||||
return $this->detectedSourceLanguage;
|
||||
}
|
||||
public function setTranslatedText($translatedText) {
|
||||
$this->translatedText = $translatedText;
|
||||
}
|
||||
public function getTranslatedText() {
|
||||
return $this->translatedText;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,325 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "url" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $urlshortenerService = new Google_UrlshortenerService(...);
|
||||
* $url = $urlshortenerService->url;
|
||||
* </code>
|
||||
*/
|
||||
class Google_UrlServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Creates a new short URL. (url.insert)
|
||||
*
|
||||
* @param Google_Url $postBody
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_Url
|
||||
*/
|
||||
public function insert(Google_Url $postBody, $optParams = array()) {
|
||||
$params = array('postBody' => $postBody);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('insert', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Url($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Retrieves a list of URLs shortened by a user. (url.list)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string start-token Token for requesting successive pages of results.
|
||||
* @opt_param string projection Additional information to return.
|
||||
* @return Google_UrlHistory
|
||||
*/
|
||||
public function listUrl($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_UrlHistory($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Expands a short URL or gets creation time and analytics. (url.get)
|
||||
*
|
||||
* @param string $shortUrl The short URL, including the protocol.
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string projection Additional information to return.
|
||||
* @return Google_Url
|
||||
*/
|
||||
public function get($shortUrl, $optParams = array()) {
|
||||
$params = array('shortUrl' => $shortUrl);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('get', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_Url($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Urlshortener (v1).
|
||||
*
|
||||
* <p>
|
||||
* Lets you create, inspect, and manage goo.gl short URLs
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="http://code.google.com/apis/urlshortener/v1/getting_started.html" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_UrlshortenerService extends Google_Service {
|
||||
public $url;
|
||||
/**
|
||||
* Constructs the internal representation of the Urlshortener service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'urlshortener/v1/';
|
||||
$this->version = 'v1';
|
||||
$this->serviceName = 'urlshortener';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->url = new Google_UrlServiceResource($this, $this->serviceName, 'url', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/urlshortener"], "request": {"$ref": "Url"}, "response": {"$ref": "Url"}, "httpMethod": "POST", "path": "url", "id": "urlshortener.url.insert"}, "list": {"scopes": ["https://www.googleapis.com/auth/urlshortener"], "parameters": {"start-token": {"type": "string", "location": "query"}, "projection": {"enum": ["ANALYTICS_CLICKS", "FULL"], "type": "string", "location": "query"}}, "response": {"$ref": "UrlHistory"}, "httpMethod": "GET", "path": "url/history", "id": "urlshortener.url.list"}, "get": {"httpMethod": "GET", "response": {"$ref": "Url"}, "id": "urlshortener.url.get", "parameters": {"shortUrl": {"required": true, "type": "string", "location": "query"}, "projection": {"enum": ["ANALYTICS_CLICKS", "ANALYTICS_TOP_STRINGS", "FULL"], "type": "string", "location": "query"}}, "path": "url"}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_AnalyticsSnapshot extends Google_Model {
|
||||
public $shortUrlClicks;
|
||||
protected $__countriesType = 'Google_StringCount';
|
||||
protected $__countriesDataType = 'array';
|
||||
public $countries;
|
||||
protected $__platformsType = 'Google_StringCount';
|
||||
protected $__platformsDataType = 'array';
|
||||
public $platforms;
|
||||
protected $__browsersType = 'Google_StringCount';
|
||||
protected $__browsersDataType = 'array';
|
||||
public $browsers;
|
||||
protected $__referrersType = 'Google_StringCount';
|
||||
protected $__referrersDataType = 'array';
|
||||
public $referrers;
|
||||
public $longUrlClicks;
|
||||
public function setShortUrlClicks($shortUrlClicks) {
|
||||
$this->shortUrlClicks = $shortUrlClicks;
|
||||
}
|
||||
public function getShortUrlClicks() {
|
||||
return $this->shortUrlClicks;
|
||||
}
|
||||
public function setCountries(/* array(Google_StringCount) */ $countries) {
|
||||
$this->assertIsArray($countries, 'Google_StringCount', __METHOD__);
|
||||
$this->countries = $countries;
|
||||
}
|
||||
public function getCountries() {
|
||||
return $this->countries;
|
||||
}
|
||||
public function setPlatforms(/* array(Google_StringCount) */ $platforms) {
|
||||
$this->assertIsArray($platforms, 'Google_StringCount', __METHOD__);
|
||||
$this->platforms = $platforms;
|
||||
}
|
||||
public function getPlatforms() {
|
||||
return $this->platforms;
|
||||
}
|
||||
public function setBrowsers(/* array(Google_StringCount) */ $browsers) {
|
||||
$this->assertIsArray($browsers, 'Google_StringCount', __METHOD__);
|
||||
$this->browsers = $browsers;
|
||||
}
|
||||
public function getBrowsers() {
|
||||
return $this->browsers;
|
||||
}
|
||||
public function setReferrers(/* array(Google_StringCount) */ $referrers) {
|
||||
$this->assertIsArray($referrers, 'Google_StringCount', __METHOD__);
|
||||
$this->referrers = $referrers;
|
||||
}
|
||||
public function getReferrers() {
|
||||
return $this->referrers;
|
||||
}
|
||||
public function setLongUrlClicks($longUrlClicks) {
|
||||
$this->longUrlClicks = $longUrlClicks;
|
||||
}
|
||||
public function getLongUrlClicks() {
|
||||
return $this->longUrlClicks;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_AnalyticsSummary extends Google_Model {
|
||||
protected $__weekType = 'Google_AnalyticsSnapshot';
|
||||
protected $__weekDataType = '';
|
||||
public $week;
|
||||
protected $__allTimeType = 'Google_AnalyticsSnapshot';
|
||||
protected $__allTimeDataType = '';
|
||||
public $allTime;
|
||||
protected $__twoHoursType = 'Google_AnalyticsSnapshot';
|
||||
protected $__twoHoursDataType = '';
|
||||
public $twoHours;
|
||||
protected $__dayType = 'Google_AnalyticsSnapshot';
|
||||
protected $__dayDataType = '';
|
||||
public $day;
|
||||
protected $__monthType = 'Google_AnalyticsSnapshot';
|
||||
protected $__monthDataType = '';
|
||||
public $month;
|
||||
public function setWeek(Google_AnalyticsSnapshot $week) {
|
||||
$this->week = $week;
|
||||
}
|
||||
public function getWeek() {
|
||||
return $this->week;
|
||||
}
|
||||
public function setAllTime(Google_AnalyticsSnapshot $allTime) {
|
||||
$this->allTime = $allTime;
|
||||
}
|
||||
public function getAllTime() {
|
||||
return $this->allTime;
|
||||
}
|
||||
public function setTwoHours(Google_AnalyticsSnapshot $twoHours) {
|
||||
$this->twoHours = $twoHours;
|
||||
}
|
||||
public function getTwoHours() {
|
||||
return $this->twoHours;
|
||||
}
|
||||
public function setDay(Google_AnalyticsSnapshot $day) {
|
||||
$this->day = $day;
|
||||
}
|
||||
public function getDay() {
|
||||
return $this->day;
|
||||
}
|
||||
public function setMonth(Google_AnalyticsSnapshot $month) {
|
||||
$this->month = $month;
|
||||
}
|
||||
public function getMonth() {
|
||||
return $this->month;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_StringCount extends Google_Model {
|
||||
public $count;
|
||||
public $id;
|
||||
public function setCount($count) {
|
||||
$this->count = $count;
|
||||
}
|
||||
public function getCount() {
|
||||
return $this->count;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Url extends Google_Model {
|
||||
public $status;
|
||||
public $kind;
|
||||
public $created;
|
||||
protected $__analyticsType = 'Google_AnalyticsSummary';
|
||||
protected $__analyticsDataType = '';
|
||||
public $analytics;
|
||||
public $longUrl;
|
||||
public $id;
|
||||
public function setStatus($status) {
|
||||
$this->status = $status;
|
||||
}
|
||||
public function getStatus() {
|
||||
return $this->status;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setCreated($created) {
|
||||
$this->created = $created;
|
||||
}
|
||||
public function getCreated() {
|
||||
return $this->created;
|
||||
}
|
||||
public function setAnalytics(Google_AnalyticsSummary $analytics) {
|
||||
$this->analytics = $analytics;
|
||||
}
|
||||
public function getAnalytics() {
|
||||
return $this->analytics;
|
||||
}
|
||||
public function setLongUrl($longUrl) {
|
||||
$this->longUrl = $longUrl;
|
||||
}
|
||||
public function getLongUrl() {
|
||||
return $this->longUrl;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_UrlHistory extends Google_Model {
|
||||
public $nextPageToken;
|
||||
protected $__itemsType = 'Google_Url';
|
||||
protected $__itemsDataType = 'array';
|
||||
public $items;
|
||||
public $kind;
|
||||
public $itemsPerPage;
|
||||
public $totalItems;
|
||||
public function setNextPageToken($nextPageToken) {
|
||||
$this->nextPageToken = $nextPageToken;
|
||||
}
|
||||
public function getNextPageToken() {
|
||||
return $this->nextPageToken;
|
||||
}
|
||||
public function setItems(/* array(Google_Url) */ $items) {
|
||||
$this->assertIsArray($items, 'Google_Url', __METHOD__);
|
||||
$this->items = $items;
|
||||
}
|
||||
public function getItems() {
|
||||
return $this->items;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setItemsPerPage($itemsPerPage) {
|
||||
$this->itemsPerPage = $itemsPerPage;
|
||||
}
|
||||
public function getItemsPerPage() {
|
||||
return $this->itemsPerPage;
|
||||
}
|
||||
public function setTotalItems($totalItems) {
|
||||
$this->totalItems = $totalItems;
|
||||
}
|
||||
public function getTotalItems() {
|
||||
return $this->totalItems;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "webfonts" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $webfontsService = new Google_WebfontsService(...);
|
||||
* $webfonts = $webfontsService->webfonts;
|
||||
* </code>
|
||||
*/
|
||||
class Google_WebfontsServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Retrieves the list of fonts currently served by the Google Web Fonts Developer API
|
||||
* (webfonts.list)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string sort Enables sorting of the list
|
||||
* @return Google_WebfontList
|
||||
*/
|
||||
public function listWebfonts($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_WebfontList($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Webfonts (v1).
|
||||
*
|
||||
* <p>
|
||||
* The Google Web Fonts Developer API.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="http://code.google.com/apis/webfonts/docs/developer_api.html" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_WebfontsService extends Google_Service {
|
||||
public $webfonts;
|
||||
/**
|
||||
* Constructs the internal representation of the Webfonts service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'webfonts/v1/';
|
||||
$this->version = 'v1';
|
||||
$this->serviceName = 'webfonts';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->webfonts = new Google_WebfontsServiceResource($this, $this->serviceName, 'webfonts', json_decode('{"methods": {"list": {"httpMethod": "GET", "response": {"$ref": "WebfontList"}, "id": "webfonts.webfonts.list", "parameters": {"sort": {"enum": ["alpha", "date", "popularity", "style", "trending"], "type": "string", "location": "query"}}, "path": "webfonts"}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Webfont extends Google_Model {
|
||||
public $kind;
|
||||
public $variants;
|
||||
public $subsets;
|
||||
public $family;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setVariants($variants) {
|
||||
$this->variants = $variants;
|
||||
}
|
||||
public function getVariants() {
|
||||
return $this->variants;
|
||||
}
|
||||
public function setSubsets($subsets) {
|
||||
$this->subsets = $subsets;
|
||||
}
|
||||
public function getSubsets() {
|
||||
return $this->subsets;
|
||||
}
|
||||
public function setFamily($family) {
|
||||
$this->family = $family;
|
||||
}
|
||||
public function getFamily() {
|
||||
return $this->family;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_WebfontList extends Google_Model {
|
||||
protected $__itemsType = 'Google_Webfont';
|
||||
protected $__itemsDataType = 'array';
|
||||
public $items;
|
||||
public $kind;
|
||||
public function setItems(/* array(Google_Webfont) */ $items) {
|
||||
$this->assertIsArray($items, 'Google_Webfont', __METHOD__);
|
||||
$this->items = $items;
|
||||
}
|
||||
public function getItems() {
|
||||
return $this->items;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,996 @@
|
||||
<?php
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The "channels" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $youtubeService = new Google_YoutubeService(...);
|
||||
* $channels = $youtubeService->channels;
|
||||
* </code>
|
||||
*/
|
||||
class Google_ChannelsServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Browse the YouTube channel collection. Either the 'id' or 'mine' parameter must be set.
|
||||
* (channels.list)
|
||||
*
|
||||
* @param string $part Parts of the channel resource to be returned.
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string id YouTube IDs of the channels to be returned.
|
||||
* @opt_param string mine Flag indicating only return the channel ids of the authenticated user.
|
||||
* @return Google_ChannelListResponse
|
||||
*/
|
||||
public function listChannels($part, $optParams = array()) {
|
||||
$params = array('part' => $part);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_ChannelListResponse($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The "search" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $youtubeService = new Google_YoutubeService(...);
|
||||
* $search = $youtubeService->search;
|
||||
* </code>
|
||||
*/
|
||||
class Google_SearchServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Universal search for youtube. (search.list)
|
||||
*
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string q Query to search in Youtube.
|
||||
* @opt_param string startIndex Index of the first search result to return.
|
||||
* @opt_param string type Type of resource to search.
|
||||
* @opt_param string order Sort order.
|
||||
* @opt_param string maxResults Maximum number of search results to return per page.
|
||||
* @return Google_SearchListResponse
|
||||
*/
|
||||
public function listSearch($optParams = array()) {
|
||||
$params = array();
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_SearchListResponse($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The "playlistitems" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $youtubeService = new Google_YoutubeService(...);
|
||||
* $playlistitems = $youtubeService->playlistitems;
|
||||
* </code>
|
||||
*/
|
||||
class Google_PlaylistitemsServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Browse the YouTube playlist collection. (playlistitems.list)
|
||||
*
|
||||
* @param string $part Parts of the playlist resource to be returned.
|
||||
* @param array $optParams Optional parameters.
|
||||
*
|
||||
* @opt_param string startIndex Index of the first element to return (starts at 0)
|
||||
* @opt_param string playlistId Retrieves playlist items from the given playlist id.
|
||||
* @opt_param string id YouTube IDs of the playlists to be returned.
|
||||
* @opt_param string maxResults Maximum number of results to return
|
||||
* @return Google_PlaylistItemListResponse
|
||||
*/
|
||||
public function listPlaylistitems($part, $optParams = array()) {
|
||||
$params = array('part' => $part);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_PlaylistItemListResponse($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The "playlists" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $youtubeService = new Google_YoutubeService(...);
|
||||
* $playlists = $youtubeService->playlists;
|
||||
* </code>
|
||||
*/
|
||||
class Google_PlaylistsServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Browse the YouTube playlist collection. (playlists.list)
|
||||
*
|
||||
* @param string $id YouTube IDs of the playlists to be returned.
|
||||
* @param string $part Parts of the playlist resource to be returned.
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_PlaylistListResponse
|
||||
*/
|
||||
public function listPlaylists($id, $part, $optParams = array()) {
|
||||
$params = array('id' => $id, 'part' => $part);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_PlaylistListResponse($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The "videos" collection of methods.
|
||||
* Typical usage is:
|
||||
* <code>
|
||||
* $youtubeService = new Google_YoutubeService(...);
|
||||
* $videos = $youtubeService->videos;
|
||||
* </code>
|
||||
*/
|
||||
class Google_VideosServiceResource extends Google_ServiceResource {
|
||||
|
||||
|
||||
/**
|
||||
* Browse the YouTube video collection. (videos.list)
|
||||
*
|
||||
* @param string $id YouTube IDs of the videos to be returned.
|
||||
* @param string $part Parts of the video resource to be returned.
|
||||
* @param array $optParams Optional parameters.
|
||||
* @return Google_VideoListResponse
|
||||
*/
|
||||
public function listVideos($id, $part, $optParams = array()) {
|
||||
$params = array('id' => $id, 'part' => $part);
|
||||
$params = array_merge($params, $optParams);
|
||||
$data = $this->__call('list', array($params));
|
||||
if ($this->useObjects()) {
|
||||
return new Google_VideoListResponse($data);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Service definition for Google_Youtube (v3alpha).
|
||||
*
|
||||
* <p>
|
||||
* Programmatic access to YouTube features.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For more information about this service, see the
|
||||
* <a href="https://developers.google.com/youtube" target="_blank">API Documentation</a>
|
||||
* </p>
|
||||
*
|
||||
* @author Google, Inc.
|
||||
*/
|
||||
class Google_YoutubeService extends Google_Service {
|
||||
public $channels;
|
||||
public $search;
|
||||
public $playlistitems;
|
||||
public $playlists;
|
||||
public $videos;
|
||||
/**
|
||||
* Constructs the internal representation of the Youtube service.
|
||||
*
|
||||
* @param Google_Client $client
|
||||
*/
|
||||
public function __construct(Google_Client $client) {
|
||||
$this->servicePath = 'youtube/v3alpha/';
|
||||
$this->version = 'v3alpha';
|
||||
$this->serviceName = 'youtube';
|
||||
|
||||
$client->addService($this->serviceName, $this->version);
|
||||
$this->channels = new Google_ChannelsServiceResource($this, $this->serviceName, 'channels', json_decode('{"methods": {"list": {"scopes": ["https://www.googleapis.com/auth/youtube"], "parameters": {"part": {"required": true, "type": "string", "location": "query"}, "id": {"type": "string", "location": "query"}, "mine": {"type": "string", "location": "query"}}, "id": "youtube.channels.list", "httpMethod": "GET", "path": "channels", "response": {"$ref": "ChannelListResponse"}}}}', true));
|
||||
$this->search = new Google_SearchServiceResource($this, $this->serviceName, 'search', json_decode('{"methods": {"list": {"scopes": ["https://www.googleapis.com/auth/youtube"], "parameters": {"q": {"type": "string", "location": "query"}, "startIndex": {"format": "uint32", "default": "0", "maximum": "1000", "minimum": "0", "location": "query", "type": "integer"}, "type": {"repeated": true, "enum": ["channel", "playlist", "video"], "type": "string", "location": "query"}, "order": {"default": "SEARCH_SORT_RELEVANCE", "enum": ["date", "rating", "relevance", "view_count"], "type": "string", "location": "query"}, "maxResults": {"format": "uint32", "default": "25", "maximum": "50", "minimum": "0", "location": "query", "type": "integer"}}, "response": {"$ref": "SearchListResponse"}, "httpMethod": "GET", "path": "search", "id": "youtube.search.list"}}}', true));
|
||||
$this->playlistitems = new Google_PlaylistitemsServiceResource($this, $this->serviceName, 'playlistitems', json_decode('{"methods": {"list": {"scopes": ["https://www.googleapis.com/auth/youtube"], "parameters": {"startIndex": {"minimum": "0", "type": "integer", "location": "query", "format": "uint32"}, "part": {"required": true, "type": "string", "location": "query"}, "playlistId": {"type": "string", "location": "query"}, "id": {"type": "string", "location": "query"}, "maxResults": {"default": "50", "minimum": "0", "type": "integer", "location": "query", "format": "uint32"}}, "id": "youtube.playlistitems.list", "httpMethod": "GET", "path": "playlistitems", "response": {"$ref": "PlaylistItemListResponse"}}}}', true));
|
||||
$this->playlists = new Google_PlaylistsServiceResource($this, $this->serviceName, 'playlists', json_decode('{"methods": {"list": {"scopes": ["https://www.googleapis.com/auth/youtube"], "parameters": {"part": {"required": true, "type": "string", "location": "query"}, "id": {"required": true, "type": "string", "location": "query"}}, "id": "youtube.playlists.list", "httpMethod": "GET", "path": "playlists", "response": {"$ref": "PlaylistListResponse"}}}}', true));
|
||||
$this->videos = new Google_VideosServiceResource($this, $this->serviceName, 'videos', json_decode('{"methods": {"list": {"scopes": ["https://www.googleapis.com/auth/youtube"], "parameters": {"part": {"required": true, "type": "string", "location": "query"}, "id": {"required": true, "type": "string", "location": "query"}}, "id": "youtube.videos.list", "httpMethod": "GET", "path": "videos", "response": {"$ref": "VideoListResponse"}}}}', true));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Channel extends Google_Model {
|
||||
public $kind;
|
||||
protected $__statisticsType = 'Google_ChannelStatistics';
|
||||
protected $__statisticsDataType = '';
|
||||
public $statistics;
|
||||
protected $__contentDetailsType = 'Google_ChannelContentDetails';
|
||||
protected $__contentDetailsDataType = '';
|
||||
public $contentDetails;
|
||||
protected $__snippetType = 'Google_ChannelSnippet';
|
||||
protected $__snippetDataType = '';
|
||||
public $snippet;
|
||||
public $etag;
|
||||
public $id;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setStatistics(Google_ChannelStatistics $statistics) {
|
||||
$this->statistics = $statistics;
|
||||
}
|
||||
public function getStatistics() {
|
||||
return $this->statistics;
|
||||
}
|
||||
public function setContentDetails(Google_ChannelContentDetails $contentDetails) {
|
||||
$this->contentDetails = $contentDetails;
|
||||
}
|
||||
public function getContentDetails() {
|
||||
return $this->contentDetails;
|
||||
}
|
||||
public function setSnippet(Google_ChannelSnippet $snippet) {
|
||||
$this->snippet = $snippet;
|
||||
}
|
||||
public function getSnippet() {
|
||||
return $this->snippet;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ChannelContentDetails extends Google_Model {
|
||||
public $privacyStatus;
|
||||
public $uploads;
|
||||
public function setPrivacyStatus($privacyStatus) {
|
||||
$this->privacyStatus = $privacyStatus;
|
||||
}
|
||||
public function getPrivacyStatus() {
|
||||
return $this->privacyStatus;
|
||||
}
|
||||
public function setUploads($uploads) {
|
||||
$this->uploads = $uploads;
|
||||
}
|
||||
public function getUploads() {
|
||||
return $this->uploads;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ChannelListResponse extends Google_Model {
|
||||
protected $__channelsType = 'Google_Channel';
|
||||
protected $__channelsDataType = 'map';
|
||||
public $channels;
|
||||
public $kind;
|
||||
public $etag;
|
||||
public function setChannels(Google_Channel $channels) {
|
||||
$this->channels = $channels;
|
||||
}
|
||||
public function getChannels() {
|
||||
return $this->channels;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ChannelSnippet extends Google_Model {
|
||||
public $title;
|
||||
public $description;
|
||||
protected $__thumbnailsType = 'Google_Thumbnail';
|
||||
protected $__thumbnailsDataType = 'map';
|
||||
public $thumbnails;
|
||||
public function setTitle($title) {
|
||||
$this->title = $title;
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->title;
|
||||
}
|
||||
public function setDescription($description) {
|
||||
$this->description = $description;
|
||||
}
|
||||
public function getDescription() {
|
||||
return $this->description;
|
||||
}
|
||||
public function setThumbnails(Google_Thumbnail $thumbnails) {
|
||||
$this->thumbnails = $thumbnails;
|
||||
}
|
||||
public function getThumbnails() {
|
||||
return $this->thumbnails;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ChannelStatistics extends Google_Model {
|
||||
public $commentCount;
|
||||
public $subscriberCount;
|
||||
public $videoCount;
|
||||
public $viewCount;
|
||||
public function setCommentCount($commentCount) {
|
||||
$this->commentCount = $commentCount;
|
||||
}
|
||||
public function getCommentCount() {
|
||||
return $this->commentCount;
|
||||
}
|
||||
public function setSubscriberCount($subscriberCount) {
|
||||
$this->subscriberCount = $subscriberCount;
|
||||
}
|
||||
public function getSubscriberCount() {
|
||||
return $this->subscriberCount;
|
||||
}
|
||||
public function setVideoCount($videoCount) {
|
||||
$this->videoCount = $videoCount;
|
||||
}
|
||||
public function getVideoCount() {
|
||||
return $this->videoCount;
|
||||
}
|
||||
public function setViewCount($viewCount) {
|
||||
$this->viewCount = $viewCount;
|
||||
}
|
||||
public function getViewCount() {
|
||||
return $this->viewCount;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_PageInfo extends Google_Model {
|
||||
public $totalResults;
|
||||
public $startIndex;
|
||||
public $resultPerPage;
|
||||
public function setTotalResults($totalResults) {
|
||||
$this->totalResults = $totalResults;
|
||||
}
|
||||
public function getTotalResults() {
|
||||
return $this->totalResults;
|
||||
}
|
||||
public function setStartIndex($startIndex) {
|
||||
$this->startIndex = $startIndex;
|
||||
}
|
||||
public function getStartIndex() {
|
||||
return $this->startIndex;
|
||||
}
|
||||
public function setResultPerPage($resultPerPage) {
|
||||
$this->resultPerPage = $resultPerPage;
|
||||
}
|
||||
public function getResultPerPage() {
|
||||
return $this->resultPerPage;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Playlist extends Google_Model {
|
||||
protected $__snippetType = 'Google_PlaylistSnippet';
|
||||
protected $__snippetDataType = '';
|
||||
public $snippet;
|
||||
public $kind;
|
||||
public $etag;
|
||||
public $id;
|
||||
public function setSnippet(Google_PlaylistSnippet $snippet) {
|
||||
$this->snippet = $snippet;
|
||||
}
|
||||
public function getSnippet() {
|
||||
return $this->snippet;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_PlaylistItem extends Google_Model {
|
||||
protected $__snippetType = 'Google_PlaylistItemSnippet';
|
||||
protected $__snippetDataType = '';
|
||||
public $snippet;
|
||||
public $kind;
|
||||
public $etag;
|
||||
public $id;
|
||||
public function setSnippet(Google_PlaylistItemSnippet $snippet) {
|
||||
$this->snippet = $snippet;
|
||||
}
|
||||
public function getSnippet() {
|
||||
return $this->snippet;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_PlaylistItemListResponse extends Google_Model {
|
||||
protected $__playlistItemsType = 'Google_PlaylistItem';
|
||||
protected $__playlistItemsDataType = 'map';
|
||||
public $playlistItems;
|
||||
public $kind;
|
||||
public $etag;
|
||||
public function setPlaylistItems(Google_PlaylistItem $playlistItems) {
|
||||
$this->playlistItems = $playlistItems;
|
||||
}
|
||||
public function getPlaylistItems() {
|
||||
return $this->playlistItems;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_PlaylistItemSnippet extends Google_Model {
|
||||
public $playlistId;
|
||||
public $description;
|
||||
public $title;
|
||||
protected $__resourceIdType = 'Google_ResourceId';
|
||||
protected $__resourceIdDataType = '';
|
||||
public $resourceId;
|
||||
public $channelId;
|
||||
public $publishedAt;
|
||||
public $position;
|
||||
public function setPlaylistId($playlistId) {
|
||||
$this->playlistId = $playlistId;
|
||||
}
|
||||
public function getPlaylistId() {
|
||||
return $this->playlistId;
|
||||
}
|
||||
public function setDescription($description) {
|
||||
$this->description = $description;
|
||||
}
|
||||
public function getDescription() {
|
||||
return $this->description;
|
||||
}
|
||||
public function setTitle($title) {
|
||||
$this->title = $title;
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->title;
|
||||
}
|
||||
public function setResourceId(Google_ResourceId $resourceId) {
|
||||
$this->resourceId = $resourceId;
|
||||
}
|
||||
public function getResourceId() {
|
||||
return $this->resourceId;
|
||||
}
|
||||
public function setChannelId($channelId) {
|
||||
$this->channelId = $channelId;
|
||||
}
|
||||
public function getChannelId() {
|
||||
return $this->channelId;
|
||||
}
|
||||
public function setPublishedAt($publishedAt) {
|
||||
$this->publishedAt = $publishedAt;
|
||||
}
|
||||
public function getPublishedAt() {
|
||||
return $this->publishedAt;
|
||||
}
|
||||
public function setPosition($position) {
|
||||
$this->position = $position;
|
||||
}
|
||||
public function getPosition() {
|
||||
return $this->position;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_PlaylistListResponse extends Google_Model {
|
||||
public $kind;
|
||||
public $etag;
|
||||
protected $__playlistsType = 'Google_Playlist';
|
||||
protected $__playlistsDataType = 'map';
|
||||
public $playlists;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
public function setPlaylists(Google_Playlist $playlists) {
|
||||
$this->playlists = $playlists;
|
||||
}
|
||||
public function getPlaylists() {
|
||||
return $this->playlists;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_PlaylistSnippet extends Google_Model {
|
||||
public $title;
|
||||
public $channelId;
|
||||
public $description;
|
||||
public $publishedAt;
|
||||
public $tags;
|
||||
public function setTitle($title) {
|
||||
$this->title = $title;
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->title;
|
||||
}
|
||||
public function setChannelId($channelId) {
|
||||
$this->channelId = $channelId;
|
||||
}
|
||||
public function getChannelId() {
|
||||
return $this->channelId;
|
||||
}
|
||||
public function setDescription($description) {
|
||||
$this->description = $description;
|
||||
}
|
||||
public function getDescription() {
|
||||
return $this->description;
|
||||
}
|
||||
public function setPublishedAt($publishedAt) {
|
||||
$this->publishedAt = $publishedAt;
|
||||
}
|
||||
public function getPublishedAt() {
|
||||
return $this->publishedAt;
|
||||
}
|
||||
public function setTags(/* array(Google_string) */ $tags) {
|
||||
$this->assertIsArray($tags, 'Google_string', __METHOD__);
|
||||
$this->tags = $tags;
|
||||
}
|
||||
public function getTags() {
|
||||
return $this->tags;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_ResourceId extends Google_Model {
|
||||
public $kind;
|
||||
public $channelId;
|
||||
public $playlistId;
|
||||
public $videoId;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setChannelId($channelId) {
|
||||
$this->channelId = $channelId;
|
||||
}
|
||||
public function getChannelId() {
|
||||
return $this->channelId;
|
||||
}
|
||||
public function setPlaylistId($playlistId) {
|
||||
$this->playlistId = $playlistId;
|
||||
}
|
||||
public function getPlaylistId() {
|
||||
return $this->playlistId;
|
||||
}
|
||||
public function setVideoId($videoId) {
|
||||
$this->videoId = $videoId;
|
||||
}
|
||||
public function getVideoId() {
|
||||
return $this->videoId;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_SearchListResponse extends Google_Model {
|
||||
protected $__searchResultsType = 'Google_SearchResult';
|
||||
protected $__searchResultsDataType = 'array';
|
||||
public $searchResults;
|
||||
public $kind;
|
||||
public $etag;
|
||||
protected $__pageInfoType = 'Google_PageInfo';
|
||||
protected $__pageInfoDataType = '';
|
||||
public $pageInfo;
|
||||
public function setSearchResults(/* array(Google_SearchResult) */ $searchResults) {
|
||||
$this->assertIsArray($searchResults, 'Google_SearchResult', __METHOD__);
|
||||
$this->searchResults = $searchResults;
|
||||
}
|
||||
public function getSearchResults() {
|
||||
return $this->searchResults;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
public function setPageInfo(Google_PageInfo $pageInfo) {
|
||||
$this->pageInfo = $pageInfo;
|
||||
}
|
||||
public function getPageInfo() {
|
||||
return $this->pageInfo;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_SearchResult extends Google_Model {
|
||||
protected $__snippetType = 'Google_SearchResultSnippet';
|
||||
protected $__snippetDataType = '';
|
||||
public $snippet;
|
||||
public $kind;
|
||||
public $etag;
|
||||
protected $__idType = 'Google_ResourceId';
|
||||
protected $__idDataType = '';
|
||||
public $id;
|
||||
public function setSnippet(Google_SearchResultSnippet $snippet) {
|
||||
$this->snippet = $snippet;
|
||||
}
|
||||
public function getSnippet() {
|
||||
return $this->snippet;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
public function setId(Google_ResourceId $id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_SearchResultSnippet extends Google_Model {
|
||||
public $channelId;
|
||||
public $description;
|
||||
public $publishedAt;
|
||||
public $title;
|
||||
public function setChannelId($channelId) {
|
||||
$this->channelId = $channelId;
|
||||
}
|
||||
public function getChannelId() {
|
||||
return $this->channelId;
|
||||
}
|
||||
public function setDescription($description) {
|
||||
$this->description = $description;
|
||||
}
|
||||
public function getDescription() {
|
||||
return $this->description;
|
||||
}
|
||||
public function setPublishedAt($publishedAt) {
|
||||
$this->publishedAt = $publishedAt;
|
||||
}
|
||||
public function getPublishedAt() {
|
||||
return $this->publishedAt;
|
||||
}
|
||||
public function setTitle($title) {
|
||||
$this->title = $title;
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->title;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Thumbnail extends Google_Model {
|
||||
public $url;
|
||||
public function setUrl($url) {
|
||||
$this->url = $url;
|
||||
}
|
||||
public function getUrl() {
|
||||
return $this->url;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_Video extends Google_Model {
|
||||
protected $__statusType = 'Google_VideoStatus';
|
||||
protected $__statusDataType = '';
|
||||
public $status;
|
||||
public $kind;
|
||||
protected $__statisticsType = 'Google_VideoStatistics';
|
||||
protected $__statisticsDataType = '';
|
||||
public $statistics;
|
||||
protected $__contentDetailsType = 'Google_VideoContentDetails';
|
||||
protected $__contentDetailsDataType = '';
|
||||
public $contentDetails;
|
||||
protected $__snippetType = 'Google_VideoSnippet';
|
||||
protected $__snippetDataType = '';
|
||||
public $snippet;
|
||||
protected $__playerType = 'Google_VideoPlayer';
|
||||
protected $__playerDataType = '';
|
||||
public $player;
|
||||
public $etag;
|
||||
public $id;
|
||||
public function setStatus(Google_VideoStatus $status) {
|
||||
$this->status = $status;
|
||||
}
|
||||
public function getStatus() {
|
||||
return $this->status;
|
||||
}
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setStatistics(Google_VideoStatistics $statistics) {
|
||||
$this->statistics = $statistics;
|
||||
}
|
||||
public function getStatistics() {
|
||||
return $this->statistics;
|
||||
}
|
||||
public function setContentDetails(Google_VideoContentDetails $contentDetails) {
|
||||
$this->contentDetails = $contentDetails;
|
||||
}
|
||||
public function getContentDetails() {
|
||||
return $this->contentDetails;
|
||||
}
|
||||
public function setSnippet(Google_VideoSnippet $snippet) {
|
||||
$this->snippet = $snippet;
|
||||
}
|
||||
public function getSnippet() {
|
||||
return $this->snippet;
|
||||
}
|
||||
public function setPlayer(Google_VideoPlayer $player) {
|
||||
$this->player = $player;
|
||||
}
|
||||
public function getPlayer() {
|
||||
return $this->player;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
public function setId($id) {
|
||||
$this->id = $id;
|
||||
}
|
||||
public function getId() {
|
||||
return $this->id;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_VideoContentDetails extends Google_Model {
|
||||
public $duration;
|
||||
public $aspectRatio;
|
||||
public function setDuration($duration) {
|
||||
$this->duration = $duration;
|
||||
}
|
||||
public function getDuration() {
|
||||
return $this->duration;
|
||||
}
|
||||
public function setAspectRatio($aspectRatio) {
|
||||
$this->aspectRatio = $aspectRatio;
|
||||
}
|
||||
public function getAspectRatio() {
|
||||
return $this->aspectRatio;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_VideoListResponse extends Google_Model {
|
||||
public $kind;
|
||||
public $etag;
|
||||
protected $__videosType = 'Google_Video';
|
||||
protected $__videosDataType = 'map';
|
||||
public $videos;
|
||||
public function setKind($kind) {
|
||||
$this->kind = $kind;
|
||||
}
|
||||
public function getKind() {
|
||||
return $this->kind;
|
||||
}
|
||||
public function setEtag($etag) {
|
||||
$this->etag = $etag;
|
||||
}
|
||||
public function getEtag() {
|
||||
return $this->etag;
|
||||
}
|
||||
public function setVideos(Google_Video $videos) {
|
||||
$this->videos = $videos;
|
||||
}
|
||||
public function getVideos() {
|
||||
return $this->videos;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_VideoPlayer extends Google_Model {
|
||||
public $embedHtml;
|
||||
public function setEmbedHtml($embedHtml) {
|
||||
$this->embedHtml = $embedHtml;
|
||||
}
|
||||
public function getEmbedHtml() {
|
||||
return $this->embedHtml;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_VideoSnippet extends Google_Model {
|
||||
protected $__thumbnailsType = 'Google_Thumbnail';
|
||||
protected $__thumbnailsDataType = 'map';
|
||||
public $thumbnails;
|
||||
public $tags;
|
||||
public $channelId;
|
||||
public $publishedAt;
|
||||
public $title;
|
||||
public $categoryId;
|
||||
public $description;
|
||||
public function setThumbnails(Google_Thumbnail $thumbnails) {
|
||||
$this->thumbnails = $thumbnails;
|
||||
}
|
||||
public function getThumbnails() {
|
||||
return $this->thumbnails;
|
||||
}
|
||||
public function setTags(/* array(Google_string) */ $tags) {
|
||||
$this->assertIsArray($tags, 'Google_string', __METHOD__);
|
||||
$this->tags = $tags;
|
||||
}
|
||||
public function getTags() {
|
||||
return $this->tags;
|
||||
}
|
||||
public function setChannelId($channelId) {
|
||||
$this->channelId = $channelId;
|
||||
}
|
||||
public function getChannelId() {
|
||||
return $this->channelId;
|
||||
}
|
||||
public function setPublishedAt($publishedAt) {
|
||||
$this->publishedAt = $publishedAt;
|
||||
}
|
||||
public function getPublishedAt() {
|
||||
return $this->publishedAt;
|
||||
}
|
||||
public function setTitle($title) {
|
||||
$this->title = $title;
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->title;
|
||||
}
|
||||
public function setCategoryId($categoryId) {
|
||||
$this->categoryId = $categoryId;
|
||||
}
|
||||
public function getCategoryId() {
|
||||
return $this->categoryId;
|
||||
}
|
||||
public function setDescription($description) {
|
||||
$this->description = $description;
|
||||
}
|
||||
public function getDescription() {
|
||||
return $this->description;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_VideoStatistics extends Google_Model {
|
||||
public $commentCount;
|
||||
public $viewCount;
|
||||
public $favoriteCount;
|
||||
public $dislikeCount;
|
||||
public $likeCount;
|
||||
public function setCommentCount($commentCount) {
|
||||
$this->commentCount = $commentCount;
|
||||
}
|
||||
public function getCommentCount() {
|
||||
return $this->commentCount;
|
||||
}
|
||||
public function setViewCount($viewCount) {
|
||||
$this->viewCount = $viewCount;
|
||||
}
|
||||
public function getViewCount() {
|
||||
return $this->viewCount;
|
||||
}
|
||||
public function setFavoriteCount($favoriteCount) {
|
||||
$this->favoriteCount = $favoriteCount;
|
||||
}
|
||||
public function getFavoriteCount() {
|
||||
return $this->favoriteCount;
|
||||
}
|
||||
public function setDislikeCount($dislikeCount) {
|
||||
$this->dislikeCount = $dislikeCount;
|
||||
}
|
||||
public function getDislikeCount() {
|
||||
return $this->dislikeCount;
|
||||
}
|
||||
public function setLikeCount($likeCount) {
|
||||
$this->likeCount = $likeCount;
|
||||
}
|
||||
public function getLikeCount() {
|
||||
return $this->likeCount;
|
||||
}
|
||||
}
|
||||
|
||||
class Google_VideoStatus extends Google_Model {
|
||||
public $privacyStatus;
|
||||
public $uploadStatus;
|
||||
public $rejectionReason;
|
||||
public $failureReason;
|
||||
public function setPrivacyStatus($privacyStatus) {
|
||||
$this->privacyStatus = $privacyStatus;
|
||||
}
|
||||
public function getPrivacyStatus() {
|
||||
return $this->privacyStatus;
|
||||
}
|
||||
public function setUploadStatus($uploadStatus) {
|
||||
$this->uploadStatus = $uploadStatus;
|
||||
}
|
||||
public function getUploadStatus() {
|
||||
return $this->uploadStatus;
|
||||
}
|
||||
public function setRejectionReason($rejectionReason) {
|
||||
$this->rejectionReason = $rejectionReason;
|
||||
}
|
||||
public function getRejectionReason() {
|
||||
return $this->rejectionReason;
|
||||
}
|
||||
public function setFailureReason($failureReason) {
|
||||
$this->failureReason = $failureReason;
|
||||
}
|
||||
public function getFailureReason() {
|
||||
return $this->failureReason;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,201 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* This file contains the class moodle_google_curlio.
|
||||
*
|
||||
* @package core_google
|
||||
* @copyright 2013 Frédéric Massart
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
require_once($CFG->libdir . '/filelib.php');
|
||||
require_once($CFG->libdir . '/google/io/Google_IO.php');
|
||||
|
||||
/**
|
||||
* Class moodle_google_curlio.
|
||||
*
|
||||
* The initial purpose of this class is to add support for our
|
||||
* class curl in Google_CurlIO.
|
||||
*
|
||||
* @package core_google
|
||||
* @copyright 2013 Frédéric Massart
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class moodle_google_curlio extends Google_CurlIO {
|
||||
|
||||
/** @var array associate array of constant value and their name. */
|
||||
private static $constants = null;
|
||||
|
||||
/**
|
||||
* Private variables have to be redefined here.
|
||||
*/
|
||||
private static $ENTITY_HTTP_METHODS = array("POST" => null, "PUT" => null);
|
||||
private static $HOP_BY_HOP = array(
|
||||
'connection', 'keep-alive', 'proxy-authenticate', 'proxy-authorization',
|
||||
'te', 'trailers', 'transfer-encoding', 'upgrade');
|
||||
private $curlParams = array(
|
||||
'CURLOPT_RETURNTRANSFER' => true,
|
||||
'CURLOPT_FOLLOWLOCATION' => 0,
|
||||
'CURLOPT_FAILONERROR' => false,
|
||||
'CURLOPT_SSL_VERIFYPEER' => true,
|
||||
'CURLOPT_HEADER' => true,
|
||||
'CURLOPT_VERBOSE' => false
|
||||
);
|
||||
|
||||
/**
|
||||
* Send the request via our curl object.
|
||||
*
|
||||
* @param curl $curl prepared curl object.
|
||||
* @param Google_HttpRequest $request The request.
|
||||
* @return string result of the request.
|
||||
*/
|
||||
private function do_request($curl, $request) {
|
||||
$url = $request->getUrl();
|
||||
$method = $request->getRequestMethod();
|
||||
switch (strtoupper($method)) {
|
||||
case 'POST':
|
||||
$ret = $curl->post($url, $request->getPostBody());
|
||||
break;
|
||||
case 'GET':
|
||||
$ret = $curl->get($url);
|
||||
break;
|
||||
case 'HEAD':
|
||||
$ret = $curl->head($url);
|
||||
break;
|
||||
case 'PUT':
|
||||
$ret = $curl->put($url);
|
||||
break;
|
||||
default:
|
||||
throw new coding_exception('Unknown request type: ' . $method);
|
||||
break;
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send an API request to Google.
|
||||
*
|
||||
* This method overwrite the parent one so that the Google SDK will use our class
|
||||
* curl to proceed with the requests. This allows us to have control over the
|
||||
* proxy parameters and other stuffs.
|
||||
*
|
||||
* Note that the caching support of the Google SDK has been removed from this function.
|
||||
*
|
||||
* @param Google_HttpRequest $request the http request to be executed
|
||||
* @return Google_HttpRequest http request with the response http code, response
|
||||
* headers and response body filled in
|
||||
* @throws Google_IOException on curl or IO error
|
||||
*/
|
||||
public function makeRequest(Google_HttpRequest $request) {
|
||||
|
||||
if (array_key_exists($request->getRequestMethod(), self::$ENTITY_HTTP_METHODS)) {
|
||||
$request = $this->processEntityRequest($request);
|
||||
}
|
||||
|
||||
$curl = new curl();
|
||||
$curl->setopt($this->curlParams);
|
||||
$curl->setopt(array('CURLOPT_URL' => $request->getUrl()));
|
||||
|
||||
$requestHeaders = $request->getRequestHeaders();
|
||||
if ($requestHeaders && is_array($requestHeaders)) {
|
||||
$parsed = array();
|
||||
foreach ($requestHeaders as $k => $v) {
|
||||
$parsed[] = "$k: $v";
|
||||
}
|
||||
$curl->setHeader($parsed);
|
||||
}
|
||||
|
||||
$curl->setopt(array(
|
||||
'CURLOPT_CUSTOMREQUEST' => $request->getRequestMethod(),
|
||||
'CURLOPT_USERAGENT' => $request->getUserAgent()
|
||||
));
|
||||
|
||||
$respData = $this->do_request($curl, $request);
|
||||
|
||||
// Retry if certificates are missing.
|
||||
if ($curl->get_errno() == CURLE_SSL_CACERT) {
|
||||
error_log('SSL certificate problem, verify that the CA cert is OK.' .
|
||||
' Retrying with the CA cert bundle from google-api-php-client.');
|
||||
$curl->setopt(array('CURLOPT_CAINFO' => dirname(__FILE__) . '/io/cacerts.pem'));
|
||||
$respData = $this->do_request($curl, $request);
|
||||
}
|
||||
|
||||
$infos = $curl->get_info();
|
||||
$respHeaderSize = $infos['header_size'];
|
||||
$respHttpCode = (int) $infos['http_code'];
|
||||
$curlErrorNum = $curl->get_errno();
|
||||
$curlError = $curl->error;
|
||||
|
||||
if ($curlErrorNum != CURLE_OK) {
|
||||
throw new Google_IOException("HTTP Error: ($respHttpCode) $curlError");
|
||||
}
|
||||
|
||||
// Parse out the raw response into usable bits.
|
||||
list($responseHeaders, $responseBody) = self::parseHttpResponse($respData, $respHeaderSize);
|
||||
|
||||
// Fill in the apiHttpRequest with the response values.
|
||||
$request->setResponseHttpCode($respHttpCode);
|
||||
$request->setResponseHeaders($responseHeaders);
|
||||
$request->setResponseBody($responseBody);
|
||||
|
||||
return $request;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set curl options.
|
||||
*
|
||||
* We overwrite this method to ensure that the data passed meets
|
||||
* the requirement of our curl implementation and so that the keys
|
||||
* are strings, and not curl constants.
|
||||
*
|
||||
* @param array $optCurlParams Multiple options used by a cURL session.
|
||||
* @return void
|
||||
*/
|
||||
public function setOptions($optCurlParams) {
|
||||
$safeParams = array();
|
||||
foreach ($optCurlParams as $name => $value) {
|
||||
if (!is_string($name)) {
|
||||
$name = $this->get_option_name_from_constant($name);
|
||||
}
|
||||
$safeParams[$name] = $vale;
|
||||
}
|
||||
parent::setOptions($safeParams);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the name of an option based on the constant value.
|
||||
*
|
||||
* @param int $constant value of a CURL constant.
|
||||
* @return string name of the constant if found, or throws exception.
|
||||
* @throws coding_exception when the constant is not found.
|
||||
* @since 2.5
|
||||
*/
|
||||
public function get_option_name_from_constant($constant) {
|
||||
if (is_null(self::$constants)) {
|
||||
$constants = get_defined_constants(true);
|
||||
$constants = isset($constants['curl']) ? $constants['curl'] : array();
|
||||
$constants = array_flip($constants);
|
||||
self::$constants = $constants;
|
||||
}
|
||||
if (isset(self::$constants[$constant])) {
|
||||
return self::$constants[$constant];
|
||||
}
|
||||
throw new coding_exception('Unknown curl constant value: ' . $constant);
|
||||
}
|
||||
|
||||
}
|
||||
+209
@@ -0,0 +1,209 @@
|
||||
<?php
|
||||
/*
|
||||
Copyright (c) 2010 Kevin M Burns Jr, http://kevburnsjr.com/
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* A URI Template Parser which is used by the apiREST class to resolve the REST requests
|
||||
* Blogpost: http://lab.kevburnsjr.com/php-uri-template-parser
|
||||
* Source: http://github.com/KevBurnsJr/php-uri-template-parser
|
||||
*/
|
||||
class URI_Template_Parser {
|
||||
|
||||
public static $operators = array('+', ';', '?', '/', '.');
|
||||
public static $reserved_operators = array('|', '!', '@');
|
||||
public static $explode_modifiers = array('+', '*');
|
||||
public static $partial_modifiers = array(':', '^');
|
||||
|
||||
public static $gen_delims = array(':', '/', '?', '#', '[', ']', '@');
|
||||
public static $gen_delims_pct = array('%3A', '%2F', '%3F', '%23', '%5B', '%5D', '%40');
|
||||
public static $sub_delims = array('!', '$', '&', '\'', '(', ')', '*', '+', ',', ';', '=');
|
||||
public static $sub_delims_pct = array('%21', '%24', '%26', '%27', '%28', '%29', '%2A', '%2B', '%2C', '%3B', '%3D');
|
||||
public static $reserved;
|
||||
public static $reserved_pct;
|
||||
|
||||
public function __construct($template) {
|
||||
self::$reserved = array_merge(self::$gen_delims, self::$sub_delims);
|
||||
self::$reserved_pct = array_merge(self::$gen_delims_pct, self::$sub_delims_pct);
|
||||
$this->template = $template;
|
||||
}
|
||||
|
||||
public function expand($data) {
|
||||
// Modification to make this a bit more performant (since gettype is very slow)
|
||||
if (! is_array($data)) {
|
||||
$data = (array)$data;
|
||||
}
|
||||
/*
|
||||
// Original code, which uses a slow gettype() statement, kept in place for if the assumption that is_array always works here is incorrect
|
||||
switch (gettype($data)) {
|
||||
case "boolean":
|
||||
case "integer":
|
||||
case "double":
|
||||
case "string":
|
||||
case "object":
|
||||
$data = (array)$data;
|
||||
break;
|
||||
}
|
||||
*/
|
||||
|
||||
// Resolve template vars
|
||||
preg_match_all('/\{([^\}]*)\}/', $this->template, $em);
|
||||
|
||||
foreach ($em[1] as $i => $bare_expression) {
|
||||
preg_match('/^([\+\;\?\/\.]{1})?(.*)$/', $bare_expression, $lm);
|
||||
$exp = new StdClass();
|
||||
$exp->expression = $em[0][$i];
|
||||
$exp->operator = $lm[1];
|
||||
$exp->variable_list = $lm[2];
|
||||
$exp->varspecs = explode(',', $exp->variable_list);
|
||||
$exp->vars = array();
|
||||
foreach ($exp->varspecs as $varspec) {
|
||||
preg_match('/^([a-zA-Z0-9_]+)([\*\+]{1})?([\:\^][0-9-]+)?(\=[^,]+)?$/', $varspec, $vm);
|
||||
$var = new StdClass();
|
||||
$var->name = $vm[1];
|
||||
$var->modifier = isset($vm[2]) && $vm[2] ? $vm[2] : null;
|
||||
$var->modifier = isset($vm[3]) && $vm[3] ? $vm[3] : $var->modifier;
|
||||
$var->default = isset($vm[4]) ? substr($vm[4], 1) : null;
|
||||
$exp->vars[] = $var;
|
||||
}
|
||||
|
||||
// Add processing flags
|
||||
$exp->reserved = false;
|
||||
$exp->prefix = '';
|
||||
$exp->delimiter = ',';
|
||||
switch ($exp->operator) {
|
||||
case '+':
|
||||
$exp->reserved = 'true';
|
||||
break;
|
||||
case ';':
|
||||
$exp->prefix = ';';
|
||||
$exp->delimiter = ';';
|
||||
break;
|
||||
case '?':
|
||||
$exp->prefix = '?';
|
||||
$exp->delimiter = '&';
|
||||
break;
|
||||
case '/':
|
||||
$exp->prefix = '/';
|
||||
$exp->delimiter = '/';
|
||||
break;
|
||||
case '.':
|
||||
$exp->prefix = '.';
|
||||
$exp->delimiter = '.';
|
||||
break;
|
||||
}
|
||||
$expressions[] = $exp;
|
||||
}
|
||||
|
||||
// Expansion
|
||||
$this->expansion = $this->template;
|
||||
|
||||
foreach ($expressions as $exp) {
|
||||
$part = $exp->prefix;
|
||||
$exp->one_var_defined = false;
|
||||
foreach ($exp->vars as $var) {
|
||||
$val = '';
|
||||
if ($exp->one_var_defined && isset($data[$var->name])) {
|
||||
$part .= $exp->delimiter;
|
||||
}
|
||||
// Variable present
|
||||
if (isset($data[$var->name])) {
|
||||
$exp->one_var_defined = true;
|
||||
$var->data = $data[$var->name];
|
||||
|
||||
$val = self::val_from_var($var, $exp);
|
||||
|
||||
// Variable missing
|
||||
} else {
|
||||
if ($var->default) {
|
||||
$exp->one_var_defined = true;
|
||||
$val = $var->default;
|
||||
}
|
||||
}
|
||||
$part .= $val;
|
||||
}
|
||||
if (! $exp->one_var_defined) $part = '';
|
||||
$this->expansion = str_replace($exp->expression, $part, $this->expansion);
|
||||
}
|
||||
|
||||
return $this->expansion;
|
||||
}
|
||||
|
||||
private function val_from_var($var, $exp) {
|
||||
$val = '';
|
||||
if (is_array($var->data)) {
|
||||
$i = 0;
|
||||
if ($exp->operator == '?' && ! $var->modifier) {
|
||||
$val .= $var->name . '=';
|
||||
}
|
||||
foreach ($var->data as $k => $v) {
|
||||
$del = $var->modifier ? $exp->delimiter : ',';
|
||||
$ek = rawurlencode($k);
|
||||
$ev = rawurlencode($v);
|
||||
|
||||
// Array
|
||||
if ($k !== $i) {
|
||||
if ($var->modifier == '+') {
|
||||
$val .= $var->name . '.';
|
||||
}
|
||||
if ($exp->operator == '?' && $var->modifier || $exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+') {
|
||||
$val .= $ek . '=';
|
||||
} else {
|
||||
$val .= $ek . $del;
|
||||
}
|
||||
|
||||
// List
|
||||
} else {
|
||||
if ($var->modifier == '+') {
|
||||
if ($exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+' || $exp->operator == '?' && $var->modifier == '+') {
|
||||
$val .= $var->name . '=';
|
||||
} else {
|
||||
$val .= $var->name . '.';
|
||||
}
|
||||
}
|
||||
}
|
||||
$val .= $ev . $del;
|
||||
$i ++;
|
||||
}
|
||||
$val = trim($val, $del);
|
||||
|
||||
// Strings, numbers, etc.
|
||||
} else {
|
||||
if ($exp->operator == '?') {
|
||||
$val = $var->name . (isset($var->data) ? '=' : '');
|
||||
} else if ($exp->operator == ';') {
|
||||
$val = $var->name . ($var->data ? '=' : '');
|
||||
}
|
||||
$val .= rawurlencode($var->data);
|
||||
if ($exp->operator == '+') {
|
||||
$val = str_replace(self::$reserved_pct, self::$reserved, $val);
|
||||
}
|
||||
}
|
||||
return $val;
|
||||
}
|
||||
|
||||
public function match($uri) {}
|
||||
|
||||
public function __toString() {
|
||||
return $this->template;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,173 @@
|
||||
<?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.
|
||||
*/
|
||||
/**
|
||||
* Implement the caching directives specified in rfc2616. This
|
||||
* implementation is guided by the guidance offered in rfc2616-sec13.
|
||||
* @author Chirag Shah <[email protected]>
|
||||
*/
|
||||
class Google_CacheParser {
|
||||
public static $CACHEABLE_HTTP_METHODS = array('GET', 'HEAD');
|
||||
public static $CACHEABLE_STATUS_CODES = array('200', '203', '300', '301');
|
||||
|
||||
private function __construct() {}
|
||||
|
||||
/**
|
||||
* Check if an HTTP request can be cached by a private local cache.
|
||||
*
|
||||
* @static
|
||||
* @param Google_HttpRequest $resp
|
||||
* @return bool True if the request is cacheable.
|
||||
* False if the request is uncacheable.
|
||||
*/
|
||||
public static function isRequestCacheable (Google_HttpRequest $resp) {
|
||||
$method = $resp->getRequestMethod();
|
||||
if (! in_array($method, self::$CACHEABLE_HTTP_METHODS)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Don't cache authorized requests/responses.
|
||||
// [rfc2616-14.8] When a shared cache receives a request containing an
|
||||
// Authorization field, it MUST NOT return the corresponding response
|
||||
// as a reply to any other request...
|
||||
if ($resp->getRequestHeader("authorization")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if an HTTP response can be cached by a private local cache.
|
||||
*
|
||||
* @static
|
||||
* @param Google_HttpRequest $resp
|
||||
* @return bool True if the response is cacheable.
|
||||
* False if the response is un-cacheable.
|
||||
*/
|
||||
public static function isResponseCacheable (Google_HttpRequest $resp) {
|
||||
// First, check if the HTTP request was cacheable before inspecting the
|
||||
// HTTP response.
|
||||
if (false == self::isRequestCacheable($resp)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$code = $resp->getResponseHttpCode();
|
||||
if (! in_array($code, self::$CACHEABLE_STATUS_CODES)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// The resource is uncacheable if the resource is already expired and
|
||||
// the resource doesn't have an ETag for revalidation.
|
||||
$etag = $resp->getResponseHeader("etag");
|
||||
if (self::isExpired($resp) && $etag == false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// [rfc2616-14.9.2] If [no-store is] sent in a response, a cache MUST NOT
|
||||
// store any part of either this response or the request that elicited it.
|
||||
$cacheControl = $resp->getParsedCacheControl();
|
||||
if (isset($cacheControl['no-store'])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Pragma: no-cache is an http request directive, but is occasionally
|
||||
// used as a response header incorrectly.
|
||||
$pragma = $resp->getResponseHeader('pragma');
|
||||
if ($pragma == 'no-cache' || strpos($pragma, 'no-cache') !== false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// [rfc2616-14.44] Vary: * is extremely difficult to cache. "It implies that
|
||||
// a cache cannot determine from the request headers of a subsequent request
|
||||
// whether this response is the appropriate representation."
|
||||
// Given this, we deem responses with the Vary header as uncacheable.
|
||||
$vary = $resp->getResponseHeader('vary');
|
||||
if ($vary) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @param Google_HttpRequest $resp
|
||||
* @return bool True if the HTTP response is considered to be expired.
|
||||
* False if it is considered to be fresh.
|
||||
*/
|
||||
public static function isExpired(Google_HttpRequest $resp) {
|
||||
// HTTP/1.1 clients and caches MUST treat other invalid date formats,
|
||||
// especially including the value “0”, as in the past.
|
||||
$parsedExpires = false;
|
||||
$responseHeaders = $resp->getResponseHeaders();
|
||||
if (isset($responseHeaders['expires'])) {
|
||||
$rawExpires = $responseHeaders['expires'];
|
||||
// Check for a malformed expires header first.
|
||||
if (empty($rawExpires) || (is_numeric($rawExpires) && $rawExpires <= 0)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// See if we can parse the expires header.
|
||||
$parsedExpires = strtotime($rawExpires);
|
||||
if (false == $parsedExpires || $parsedExpires <= 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Calculate the freshness of an http response.
|
||||
$freshnessLifetime = false;
|
||||
$cacheControl = $resp->getParsedCacheControl();
|
||||
if (isset($cacheControl['max-age'])) {
|
||||
$freshnessLifetime = $cacheControl['max-age'];
|
||||
}
|
||||
|
||||
$rawDate = $resp->getResponseHeader('date');
|
||||
$parsedDate = strtotime($rawDate);
|
||||
|
||||
if (empty($rawDate) || false == $parsedDate) {
|
||||
$parsedDate = time();
|
||||
}
|
||||
if (false == $freshnessLifetime && isset($responseHeaders['expires'])) {
|
||||
$freshnessLifetime = $parsedExpires - $parsedDate;
|
||||
}
|
||||
|
||||
if (false == $freshnessLifetime) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Calculate the age of an http response.
|
||||
$age = max(0, time() - $parsedDate);
|
||||
if (isset($responseHeaders['age'])) {
|
||||
$age = max($age, strtotime($responseHeaders['age']));
|
||||
}
|
||||
|
||||
return $freshnessLifetime <= $age;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if a cache entry should be revalidated with by the origin.
|
||||
*
|
||||
* @param Google_HttpRequest $response
|
||||
* @return bool True if the entry is expired, else return false.
|
||||
*/
|
||||
public static function mustRevalidate(Google_HttpRequest $response) {
|
||||
// [13.3] When a cache has a stale entry that it would like to use as a
|
||||
// response to a client's request, it first has to check with the origin
|
||||
// server to see if its cached entry is still usable.
|
||||
return self::isExpired($response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,278 @@
|
||||
<?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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Curl based implementation of apiIO.
|
||||
*
|
||||
* @author Chris Chabot <[email protected]>
|
||||
* @author Chirag Shah <[email protected]>
|
||||
*/
|
||||
|
||||
require_once 'Google_CacheParser.php';
|
||||
|
||||
class Google_CurlIO implements Google_IO {
|
||||
const CONNECTION_ESTABLISHED = "HTTP/1.0 200 Connection established\r\n\r\n";
|
||||
const FORM_URLENCODED = 'application/x-www-form-urlencoded';
|
||||
|
||||
private static $ENTITY_HTTP_METHODS = array("POST" => null, "PUT" => null);
|
||||
private static $HOP_BY_HOP = array(
|
||||
'connection', 'keep-alive', 'proxy-authenticate', 'proxy-authorization',
|
||||
'te', 'trailers', 'transfer-encoding', 'upgrade');
|
||||
|
||||
private $curlParams = array (
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_FOLLOWLOCATION => 0,
|
||||
CURLOPT_FAILONERROR => false,
|
||||
CURLOPT_SSL_VERIFYPEER => true,
|
||||
CURLOPT_HEADER => true,
|
||||
CURLOPT_VERBOSE => false,
|
||||
);
|
||||
|
||||
/**
|
||||
* Perform an authenticated / signed apiHttpRequest.
|
||||
* This function takes the apiHttpRequest, calls apiAuth->sign on it
|
||||
* (which can modify the request in what ever way fits the auth mechanism)
|
||||
* and then calls apiCurlIO::makeRequest on the signed request
|
||||
*
|
||||
* @param Google_HttpRequest $request
|
||||
* @return Google_HttpRequest The resulting HTTP response including the
|
||||
* responseHttpCode, responseHeaders and responseBody.
|
||||
*/
|
||||
public function authenticatedRequest(Google_HttpRequest $request) {
|
||||
$request = Google_Client::$auth->sign($request);
|
||||
return $this->makeRequest($request);
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute a apiHttpRequest
|
||||
*
|
||||
* @param Google_HttpRequest $request the http request to be executed
|
||||
* @return Google_HttpRequest http request with the response http code, response
|
||||
* headers and response body filled in
|
||||
* @throws Google_IOException on curl or IO error
|
||||
*/
|
||||
public function makeRequest(Google_HttpRequest $request) {
|
||||
// First, check to see if we have a valid cached version.
|
||||
$cached = $this->getCachedRequest($request);
|
||||
if ($cached !== false) {
|
||||
if (Google_CacheParser::mustRevalidate($cached)) {
|
||||
$addHeaders = array();
|
||||
if ($cached->getResponseHeader('etag')) {
|
||||
// [13.3.4] If an entity tag has been provided by the origin server,
|
||||
// we must use that entity tag in any cache-conditional request.
|
||||
$addHeaders['If-None-Match'] = $cached->getResponseHeader('etag');
|
||||
} elseif ($cached->getResponseHeader('date')) {
|
||||
$addHeaders['If-Modified-Since'] = $cached->getResponseHeader('date');
|
||||
}
|
||||
|
||||
$request->setRequestHeaders($addHeaders);
|
||||
} else {
|
||||
// No need to revalidate the request, return it directly
|
||||
return $cached;
|
||||
}
|
||||
}
|
||||
|
||||
if (array_key_exists($request->getRequestMethod(),
|
||||
self::$ENTITY_HTTP_METHODS)) {
|
||||
$request = $this->processEntityRequest($request);
|
||||
}
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt_array($ch, $this->curlParams);
|
||||
curl_setopt($ch, CURLOPT_URL, $request->getUrl());
|
||||
if ($request->getPostBody()) {
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $request->getPostBody());
|
||||
}
|
||||
|
||||
$requestHeaders = $request->getRequestHeaders();
|
||||
if ($requestHeaders && is_array($requestHeaders)) {
|
||||
$parsed = array();
|
||||
foreach ($requestHeaders as $k => $v) {
|
||||
$parsed[] = "$k: $v";
|
||||
}
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $parsed);
|
||||
}
|
||||
|
||||
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request->getRequestMethod());
|
||||
curl_setopt($ch, CURLOPT_USERAGENT, $request->getUserAgent());
|
||||
$respData = curl_exec($ch);
|
||||
|
||||
// Retry if certificates are missing.
|
||||
if (curl_errno($ch) == CURLE_SSL_CACERT) {
|
||||
error_log('SSL certificate problem, verify that the CA cert is OK.'
|
||||
. ' Retrying with the CA cert bundle from google-api-php-client.');
|
||||
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacerts.pem');
|
||||
$respData = curl_exec($ch);
|
||||
}
|
||||
|
||||
$respHeaderSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
|
||||
$respHttpCode = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
$curlErrorNum = curl_errno($ch);
|
||||
$curlError = curl_error($ch);
|
||||
curl_close($ch);
|
||||
if ($curlErrorNum != CURLE_OK) {
|
||||
throw new Google_IOException("HTTP Error: ($respHttpCode) $curlError");
|
||||
}
|
||||
|
||||
// Parse out the raw response into usable bits
|
||||
list($responseHeaders, $responseBody) =
|
||||
self::parseHttpResponse($respData, $respHeaderSize);
|
||||
|
||||
if ($respHttpCode == 304 && $cached) {
|
||||
// If the server responded NOT_MODIFIED, return the cached request.
|
||||
if (isset($responseHeaders['connection'])) {
|
||||
$hopByHop = array_merge(
|
||||
self::$HOP_BY_HOP,
|
||||
explode(',', $responseHeaders['connection'])
|
||||
);
|
||||
|
||||
$endToEnd = array();
|
||||
foreach($hopByHop as $key) {
|
||||
if (isset($responseHeaders[$key])) {
|
||||
$endToEnd[$key] = $responseHeaders[$key];
|
||||
}
|
||||
}
|
||||
$cached->setResponseHeaders($endToEnd);
|
||||
}
|
||||
return $cached;
|
||||
}
|
||||
|
||||
// Fill in the apiHttpRequest with the response values
|
||||
$request->setResponseHttpCode($respHttpCode);
|
||||
$request->setResponseHeaders($responseHeaders);
|
||||
$request->setResponseBody($responseBody);
|
||||
// Store the request in cache (the function checks to see if the request
|
||||
// can actually be cached)
|
||||
$this->setCachedRequest($request);
|
||||
// And finally return it
|
||||
return $request;
|
||||
}
|
||||
|
||||
/**
|
||||
* @visible for testing.
|
||||
* Cache the response to an HTTP request if it is cacheable.
|
||||
* @param Google_HttpRequest $request
|
||||
* @return bool Returns true if the insertion was successful.
|
||||
* Otherwise, return false.
|
||||
*/
|
||||
public function setCachedRequest(Google_HttpRequest $request) {
|
||||
// Determine if the request is cacheable.
|
||||
if (Google_CacheParser::isResponseCacheable($request)) {
|
||||
Google_Client::$cache->set($request->getCacheKey(), $request);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @visible for testing.
|
||||
* @param Google_HttpRequest $request
|
||||
* @return Google_HttpRequest|bool Returns the cached object or
|
||||
* false if the operation was unsuccessful.
|
||||
*/
|
||||
public function getCachedRequest(Google_HttpRequest $request) {
|
||||
if (false == Google_CacheParser::isRequestCacheable($request)) {
|
||||
false;
|
||||
}
|
||||
|
||||
return Google_Client::$cache->get($request->getCacheKey());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $respData
|
||||
* @param $headerSize
|
||||
* @return array
|
||||
*/
|
||||
public static function parseHttpResponse($respData, $headerSize) {
|
||||
if (stripos($respData, self::CONNECTION_ESTABLISHED) !== false) {
|
||||
$respData = str_ireplace(self::CONNECTION_ESTABLISHED, '', $respData);
|
||||
}
|
||||
|
||||
if ($headerSize) {
|
||||
$responseBody = substr($respData, $headerSize);
|
||||
$responseHeaders = substr($respData, 0, $headerSize);
|
||||
} else {
|
||||
list($responseHeaders, $responseBody) = explode("\r\n\r\n", $respData, 2);
|
||||
}
|
||||
|
||||
$responseHeaders = self::parseResponseHeaders($responseHeaders);
|
||||
return array($responseHeaders, $responseBody);
|
||||
}
|
||||
|
||||
public static function parseResponseHeaders($rawHeaders) {
|
||||
$responseHeaders = array();
|
||||
|
||||
$responseHeaderLines = explode("\r\n", $rawHeaders);
|
||||
foreach ($responseHeaderLines as $headerLine) {
|
||||
if ($headerLine && strpos($headerLine, ':') !== false) {
|
||||
list($header, $value) = explode(': ', $headerLine, 2);
|
||||
$header = strtolower($header);
|
||||
if (isset($responseHeaders[$header])) {
|
||||
$responseHeaders[$header] .= "\n" . $value;
|
||||
} else {
|
||||
$responseHeaders[$header] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $responseHeaders;
|
||||
}
|
||||
|
||||
/**
|
||||
* @visible for testing
|
||||
* Process an http request that contains an enclosed entity.
|
||||
* @param Google_HttpRequest $request
|
||||
* @return Google_HttpRequest Processed request with the enclosed entity.
|
||||
*/
|
||||
public function processEntityRequest(Google_HttpRequest $request) {
|
||||
$postBody = $request->getPostBody();
|
||||
$contentType = $request->getRequestHeader("content-type");
|
||||
|
||||
// Set the default content-type as application/x-www-form-urlencoded.
|
||||
if (false == $contentType) {
|
||||
$contentType = self::FORM_URLENCODED;
|
||||
$request->setRequestHeaders(array('content-type' => $contentType));
|
||||
}
|
||||
|
||||
// Force the payload to match the content-type asserted in the header.
|
||||
if ($contentType == self::FORM_URLENCODED && is_array($postBody)) {
|
||||
$postBody = http_build_query($postBody, '', '&');
|
||||
$request->setPostBody($postBody);
|
||||
}
|
||||
|
||||
// Make sure the content-length header is set.
|
||||
if (!$postBody || is_string($postBody)) {
|
||||
$postsLength = strlen($postBody);
|
||||
$request->setRequestHeaders(array('content-length' => $postsLength));
|
||||
}
|
||||
|
||||
return $request;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set options that update cURL's default behavior.
|
||||
* The list of accepted options are:
|
||||
* {@link http://php.net/manual/en/function.curl-setopt.php]
|
||||
*
|
||||
* @param array $optCurlParams Multiple options used by a cURL session.
|
||||
*/
|
||||
public function setOptions($optCurlParams) {
|
||||
foreach ($optCurlParams as $key => $val) {
|
||||
$this->curlParams[$key] = $val;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,304 @@
|
||||
<?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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* HTTP Request to be executed by apiIO classes. Upon execution, the
|
||||
* responseHttpCode, responseHeaders and responseBody will be filled in.
|
||||
*
|
||||
* @author Chris Chabot <[email protected]>
|
||||
* @author Chirag Shah <[email protected]>
|
||||
*
|
||||
*/
|
||||
class Google_HttpRequest {
|
||||
const USER_AGENT_SUFFIX = "google-api-php-client/0.6.0";
|
||||
private $batchHeaders = array(
|
||||
'Content-Type' => 'application/http',
|
||||
'Content-Transfer-Encoding' => 'binary',
|
||||
'MIME-Version' => '1.0',
|
||||
'Content-Length' => ''
|
||||
);
|
||||
|
||||
protected $url;
|
||||
protected $requestMethod;
|
||||
protected $requestHeaders;
|
||||
protected $postBody;
|
||||
protected $userAgent;
|
||||
|
||||
protected $responseHttpCode;
|
||||
protected $responseHeaders;
|
||||
protected $responseBody;
|
||||
|
||||
public $accessKey;
|
||||
|
||||
public function __construct($url, $method = 'GET', $headers = array(), $postBody = null) {
|
||||
$this->setUrl($url);
|
||||
$this->setRequestMethod($method);
|
||||
$this->setRequestHeaders($headers);
|
||||
$this->setPostBody($postBody);
|
||||
|
||||
global $apiConfig;
|
||||
if (empty($apiConfig['application_name'])) {
|
||||
$this->userAgent = self::USER_AGENT_SUFFIX;
|
||||
} else {
|
||||
$this->userAgent = $apiConfig['application_name'] . " " . self::USER_AGENT_SUFFIX;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Misc function that returns the base url component of the $url
|
||||
* used by the OAuth signing class to calculate the base string
|
||||
* @return string The base url component of the $url.
|
||||
* @see http://oauth.net/core/1.0a/#anchor13
|
||||
*/
|
||||
public function getBaseUrl() {
|
||||
if ($pos = strpos($this->url, '?')) {
|
||||
return substr($this->url, 0, $pos);
|
||||
}
|
||||
return $this->url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Misc function that returns an array of the query parameters of the current
|
||||
* url used by the OAuth signing class to calculate the signature
|
||||
* @return array Query parameters in the query string.
|
||||
*/
|
||||
public function getQueryParams() {
|
||||
if ($pos = strpos($this->url, '?')) {
|
||||
$queryStr = substr($this->url, $pos + 1);
|
||||
$params = array();
|
||||
parse_str($queryStr, $params);
|
||||
return $params;
|
||||
}
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string HTTP Response Code.
|
||||
*/
|
||||
public function getResponseHttpCode() {
|
||||
return (int) $this->responseHttpCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $responseHttpCode HTTP Response Code.
|
||||
*/
|
||||
public function setResponseHttpCode($responseHttpCode) {
|
||||
$this->responseHttpCode = $responseHttpCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return $responseHeaders (array) HTTP Response Headers.
|
||||
*/
|
||||
public function getResponseHeaders() {
|
||||
return $this->responseHeaders;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string HTTP Response Body
|
||||
*/
|
||||
public function getResponseBody() {
|
||||
return $this->responseBody;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $headers The HTTP response headers
|
||||
* to be normalized.
|
||||
*/
|
||||
public function setResponseHeaders($headers) {
|
||||
$headers = Google_Utils::normalize($headers);
|
||||
if ($this->responseHeaders) {
|
||||
$headers = array_merge($this->responseHeaders, $headers);
|
||||
}
|
||||
|
||||
$this->responseHeaders = $headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $key
|
||||
* @return array|boolean Returns the requested HTTP header or
|
||||
* false if unavailable.
|
||||
*/
|
||||
public function getResponseHeader($key) {
|
||||
return isset($this->responseHeaders[$key])
|
||||
? $this->responseHeaders[$key]
|
||||
: false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $responseBody The HTTP response body.
|
||||
*/
|
||||
public function setResponseBody($responseBody) {
|
||||
$this->responseBody = $responseBody;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string $url The request URL.
|
||||
*/
|
||||
|
||||
public function getUrl() {
|
||||
return $this->url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string $method HTTP Request Method.
|
||||
*/
|
||||
public function getRequestMethod() {
|
||||
return $this->requestMethod;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array $headers HTTP Request Headers.
|
||||
*/
|
||||
public function getRequestHeaders() {
|
||||
return $this->requestHeaders;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $key
|
||||
* @return array|boolean Returns the requested HTTP header or
|
||||
* false if unavailable.
|
||||
*/
|
||||
public function getRequestHeader($key) {
|
||||
return isset($this->requestHeaders[$key])
|
||||
? $this->requestHeaders[$key]
|
||||
: false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string $postBody HTTP Request Body.
|
||||
*/
|
||||
public function getPostBody() {
|
||||
return $this->postBody;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $url the url to set
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
if (substr($url, 0, 4) == 'http') {
|
||||
$this->url = $url;
|
||||
} else {
|
||||
// Force the path become relative.
|
||||
if (substr($url, 0, 1) !== '/') {
|
||||
$url = '/' . $url;
|
||||
}
|
||||
global $apiConfig;
|
||||
$this->url = $apiConfig['basePath'] . $url;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $method Set he HTTP Method and normalize
|
||||
* it to upper-case, as required by HTTP.
|
||||
*
|
||||
*/
|
||||
public function setRequestMethod($method) {
|
||||
$this->requestMethod = strtoupper($method);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $headers The HTTP request headers
|
||||
* to be set and normalized.
|
||||
*/
|
||||
public function setRequestHeaders($headers) {
|
||||
$headers = Google_Utils::normalize($headers);
|
||||
if ($this->requestHeaders) {
|
||||
$headers = array_merge($this->requestHeaders, $headers);
|
||||
}
|
||||
$this->requestHeaders = $headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $postBody the postBody to set
|
||||
*/
|
||||
public function setPostBody($postBody) {
|
||||
$this->postBody = $postBody;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the User-Agent Header.
|
||||
* @param string $userAgent The User-Agent.
|
||||
*/
|
||||
public function setUserAgent($userAgent) {
|
||||
$this->userAgent = $userAgent;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string The User-Agent.
|
||||
*/
|
||||
public function getUserAgent() {
|
||||
return $this->userAgent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a cache key depending on if this was an OAuth signed request
|
||||
* in which case it will use the non-signed url and access key to make this
|
||||
* cache key unique per authenticated user, else use the plain request url
|
||||
* @return string The md5 hash of the request cache key.
|
||||
*/
|
||||
public function getCacheKey() {
|
||||
$key = $this->getUrl();
|
||||
|
||||
if (isset($this->accessKey)) {
|
||||
$key .= $this->accessKey;
|
||||
}
|
||||
|
||||
if (isset($this->requestHeaders['authorization'])) {
|
||||
$key .= $this->requestHeaders['authorization'];
|
||||
}
|
||||
|
||||
return md5($key);
|
||||
}
|
||||
|
||||
public function getParsedCacheControl() {
|
||||
$parsed = array();
|
||||
$rawCacheControl = $this->getResponseHeader('cache-control');
|
||||
if ($rawCacheControl) {
|
||||
$rawCacheControl = str_replace(', ', '&', $rawCacheControl);
|
||||
parse_str($rawCacheControl, $parsed);
|
||||
}
|
||||
|
||||
return $parsed;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $id
|
||||
* @return string A string representation of the HTTP Request.
|
||||
*/
|
||||
public function toBatchString($id) {
|
||||
$str = '';
|
||||
foreach($this->batchHeaders as $key => $val) {
|
||||
$str .= $key . ': ' . $val . "\n";
|
||||
}
|
||||
|
||||
$str .= "Content-ID: $id\n";
|
||||
$str .= "\n";
|
||||
|
||||
$path = parse_url($this->getUrl(), PHP_URL_PATH);
|
||||
$str .= $this->getRequestMethod() . ' ' . $path . " HTTP/1.1\n";
|
||||
foreach($this->getRequestHeaders() as $key => $val) {
|
||||
$str .= $key . ': ' . $val . "\n";
|
||||
}
|
||||
|
||||
if ($this->getPostBody()) {
|
||||
$str .= "\n";
|
||||
$str .= $this->getPostBody();
|
||||
}
|
||||
|
||||
return $str;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
<?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 'io/Google_HttpRequest.php';
|
||||
require_once 'io/Google_CurlIO.php';
|
||||
require_once 'io/Google_REST.php';
|
||||
|
||||
/**
|
||||
* Abstract IO class
|
||||
*
|
||||
* @author Chris Chabot <[email protected]>
|
||||
*/
|
||||
interface Google_IO {
|
||||
/**
|
||||
* An utility function that first calls $this->auth->sign($request) and then executes makeRequest()
|
||||
* on that signed request. Used for when a request should be authenticated
|
||||
* @param Google_HttpRequest $request
|
||||
* @return Google_HttpRequest $request
|
||||
*/
|
||||
public function authenticatedRequest(Google_HttpRequest $request);
|
||||
|
||||
/**
|
||||
* Executes a apIHttpRequest and returns the resulting populated httpRequest
|
||||
* @param Google_HttpRequest $request
|
||||
* @return Google_HttpRequest $request
|
||||
*/
|
||||
public function makeRequest(Google_HttpRequest $request);
|
||||
|
||||
/**
|
||||
* Set options that update the transport implementation's behavior.
|
||||
* @param $options
|
||||
*/
|
||||
public function setOptions($options);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
<?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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* This class implements the RESTful transport of apiServiceRequest()'s
|
||||
*
|
||||
* @author Chris Chabot <[email protected]>
|
||||
* @author Chirag Shah <[email protected]>
|
||||
*/
|
||||
class Google_REST {
|
||||
/**
|
||||
* Executes a apiServiceRequest using a RESTful call by transforming it into
|
||||
* an apiHttpRequest, and executed via apiIO::authenticatedRequest().
|
||||
*
|
||||
* @param Google_HttpRequest $req
|
||||
* @return array decoded result
|
||||
* @throws Google_ServiceException on server side error (ie: not authenticated,
|
||||
* invalid or malformed post body, invalid url)
|
||||
*/
|
||||
static public function execute(Google_HttpRequest $req) {
|
||||
$httpRequest = Google_Client::$io->makeRequest($req);
|
||||
$decodedResponse = self::decodeHttpResponse($httpRequest);
|
||||
$ret = isset($decodedResponse['data'])
|
||||
? $decodedResponse['data'] : $decodedResponse;
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Decode an HTTP Response.
|
||||
* @static
|
||||
* @throws Google_ServiceException
|
||||
* @param Google_HttpRequest $response The http response to be decoded.
|
||||
* @return mixed|null
|
||||
*/
|
||||
public static function decodeHttpResponse($response) {
|
||||
$code = $response->getResponseHttpCode();
|
||||
$body = $response->getResponseBody();
|
||||
$decoded = null;
|
||||
|
||||
if ($code != '200' && $code != '201' && $code != '204') {
|
||||
$decoded = json_decode($body, true);
|
||||
$err = 'Error calling ' . $response->getRequestMethod() . ' ' . $response->getUrl();
|
||||
if ($decoded != null && isset($decoded['error']['message']) && isset($decoded['error']['code'])) {
|
||||
// if we're getting a json encoded error definition, use that instead of the raw response
|
||||
// body for improved readability
|
||||
$err .= ": ({$decoded['error']['code']}) {$decoded['error']['message']}";
|
||||
} else {
|
||||
$err .= ": ($code) $body";
|
||||
}
|
||||
|
||||
throw new Google_ServiceException($err, $code, null, $decoded['error']['errors']);
|
||||
}
|
||||
|
||||
// Only attempt to decode the response, if the response code wasn't (204) 'no content'
|
||||
if ($code != '204') {
|
||||
$decoded = json_decode($body, true);
|
||||
if ($decoded === null || $decoded === "") {
|
||||
throw new Google_ServiceException("Invalid json in service response: $body");
|
||||
}
|
||||
}
|
||||
return $decoded;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse/expand request parameters and create a fully qualified
|
||||
* request uri.
|
||||
* @static
|
||||
* @param string $servicePath
|
||||
* @param string $restPath
|
||||
* @param array $params
|
||||
* @return string $requestUrl
|
||||
*/
|
||||
static function createRequestUri($servicePath, $restPath, $params) {
|
||||
$requestUrl = $servicePath . $restPath;
|
||||
$uriTemplateVars = array();
|
||||
$queryVars = array();
|
||||
foreach ($params as $paramName => $paramSpec) {
|
||||
// Discovery v1.0 puts the canonical location under the 'location' field.
|
||||
if (! isset($paramSpec['location'])) {
|
||||
$paramSpec['location'] = $paramSpec['restParameterType'];
|
||||
}
|
||||
|
||||
if ($paramSpec['type'] == 'boolean') {
|
||||
$paramSpec['value'] = ($paramSpec['value']) ? 'true' : 'false';
|
||||
}
|
||||
if ($paramSpec['location'] == 'path') {
|
||||
$uriTemplateVars[$paramName] = $paramSpec['value'];
|
||||
} else {
|
||||
if (isset($paramSpec['repeated']) && is_array($paramSpec['value'])) {
|
||||
foreach ($paramSpec['value'] as $value) {
|
||||
$queryVars[] = $paramName . '=' . rawurlencode($value);
|
||||
}
|
||||
} else {
|
||||
$queryVars[] = $paramName . '=' . rawurlencode($paramSpec['value']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (count($uriTemplateVars)) {
|
||||
$uriTemplateParser = new URI_Template_Parser($requestUrl);
|
||||
$requestUrl = $uriTemplateParser->expand($uriTemplateVars);
|
||||
}
|
||||
//FIXME work around for the the uri template lib which url encodes
|
||||
// the @'s & confuses our servers.
|
||||
$requestUrl = str_replace('%40', '@', $requestUrl);
|
||||
|
||||
if (count($queryVars)) {
|
||||
$requestUrl .= '?' . implode($queryVars, '&');
|
||||
}
|
||||
|
||||
return $requestUrl;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,714 @@
|
||||
# Certifcate Authority certificates for validating SSL connections.
|
||||
#
|
||||
# This file contains PEM format certificates generated from
|
||||
# http://mxr.mozilla.org/seamonkey/source/security/nss/lib/ckfw/builtins/certdata.txt
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (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.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is the Netscape security libraries.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1994-2000
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
Verisign/RSA Secure Server CA
|
||||
=============================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkG
|
||||
A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
|
||||
VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0
|
||||
MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVowXzELMAkGA1UEBhMCVVMxIDAeBgNV
|
||||
BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2Vy
|
||||
dmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUAA4GJ
|
||||
ADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII
|
||||
0haGN1XpsSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphI
|
||||
uR2nKRoTLkoRWZweFdVJVCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZI
|
||||
hvcNAQECBQADfgBl3X7hsuyw4jrg7HFGmhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3
|
||||
YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2qUtN8iD3zV9/ZHuO3ABc
|
||||
1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Thawte Personal Basic CA
|
||||
========================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCWkEx
|
||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
|
||||
VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
|
||||
ZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFBlcnNvbmFsIEJhc2lj
|
||||
IENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNpY0B0aGF3dGUuY29tMB4X
|
||||
DTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgcsxCzAJBgNVBAYTAlpBMRUw
|
||||
EwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UE
|
||||
ChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2Vy
|
||||
dmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBD
|
||||
QTEoMCYGCSqGSIb3DQEJARYZcGVyc29uYWwtYmFzaWNAdGhhd3RlLmNvbTCBnzAN
|
||||
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLyTU23AUE+CFeZIlDWmWr5vQvoPR+53
|
||||
dXLdjUmbllegeNTKP1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJl+A1OFdK
|
||||
wPQIcOk8RHtQfmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7
|
||||
G1sY0b8jkyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQF
|
||||
AAOBgQAt4plrsD16iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7
|
||||
c8a914phXAPjLSeoF+CEhULcXpvGt7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95B21P
|
||||
9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN92NWod8isQ==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Thawte Personal Premium CA
|
||||
==========================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMCWkEx
|
||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
|
||||
VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
|
||||
ZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMaVGhhd3RlIFBlcnNvbmFsIFByZW1p
|
||||
dW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXByZW1pdW1AdGhhd3RlLmNv
|
||||
bTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHPMQswCQYDVQQGEwJa
|
||||
QTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAY
|
||||
BgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9u
|
||||
IFNlcnZpY2VzIERpdmlzaW9uMSMwIQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJl
|
||||
bWl1bSBDQTEqMCgGCSqGSIb3DQEJARYbcGVyc29uYWwtcHJlbWl1bUB0aGF3dGUu
|
||||
Y29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJZtn4B0TPuYwu8KHvE0Vs
|
||||
Bd/eJxZRNkERbGw77f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ8/JE2dWI
|
||||
Et12TfIa/G8jHnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYD
|
||||
ZicRFTuqW/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
|
||||
SIb3DQEBBAUAA4GBAGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIH
|
||||
b4Vnjt4rueIXsDqg8A6iAJrf8xQVbrvIhVqYgPn/vnQdPfP+MCXRNzRn+qVxeTBh
|
||||
KXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+WjS9Q2wfD6h+rM+D1KzGJ
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Thawte Personal Freemail CA
|
||||
===========================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMCWkEx
|
||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
|
||||
VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
|
||||
ZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBlcnNvbmFsIEZyZWVt
|
||||
YWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVlbWFpbEB0aGF3dGUu
|
||||
Y29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgdExCzAJBgNVBAYT
|
||||
AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEa
|
||||
MBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRp
|
||||
b24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBG
|
||||
cmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhh
|
||||
d3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1GnX1LCUZFtx6UfY
|
||||
DFG26nKRsIRefS0Nj3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6WZBrCFG5E
|
||||
rHzmj+hND3EfQDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVq
|
||||
uzgkCGqYx7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zAN
|
||||
BgkqhkiG9w0BAQQFAAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjP
|
||||
MPuoSpaKH2JCI4wXD/S6ZJwXrEcp352YXtJsYHFcoqzceePnbgBHH7UNKOgCneSa
|
||||
/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK/qarigd1iwzdUYRr5PjRznei
|
||||
gQ==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Thawte Server CA
|
||||
================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx
|
||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
|
||||
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
|
||||
biBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm
|
||||
MCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx
|
||||
MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
|
||||
DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3
|
||||
dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl
|
||||
cyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3
|
||||
DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
|
||||
gY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91
|
||||
yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX
|
||||
L+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj
|
||||
EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG
|
||||
7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
|
||||
QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ
|
||||
qdq5snUb9kLy78fyGPmJvKP/iiMucEc=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Thawte Premium Server CA
|
||||
========================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
|
||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
|
||||
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
|
||||
biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
|
||||
dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
|
||||
MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
|
||||
MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
|
||||
A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
|
||||
b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
|
||||
cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
|
||||
bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
|
||||
VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
|
||||
ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
|
||||
uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
|
||||
9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
|
||||
hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
|
||||
pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Equifax Secure CA
|
||||
=================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
||||
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
|
||||
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
|
||||
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
|
||||
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
|
||||
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
|
||||
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
|
||||
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
|
||||
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
|
||||
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
|
||||
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
|
||||
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
|
||||
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
|
||||
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
||||
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
|
||||
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
|
||||
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 1 Public Primary Certification Authority
|
||||
=======================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICPTCCAaYCEQDNun9W8N/kvFT+IqyzcqpVMA0GCSqGSIb3DQEBAgUAMF8xCzAJ
|
||||
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
|
||||
c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05
|
||||
NjAxMjkwMDAwMDBaFw0yODA4MDEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD
|
||||
VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJp
|
||||
bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB
|
||||
jQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0N
|
||||
H8xlbgyw0FaEGIeaBpsQoXPftFg5a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR
|
||||
4k5FVmkfeAKA2txHkSm7NsljXMXg1y2He6G3MrB7MLoqLzGq7qNn2tsCAwEAATAN
|
||||
BgkqhkiG9w0BAQIFAAOBgQBMP7iLxmjf7kMzDl3ppssHhE16M/+SG/Q2rdiVIjZo
|
||||
EWx8QszznC7EBz8UsA9P/5CSdvnivErpj82ggAr3xSnxgiJduLHdgSOjeyUVRjB5
|
||||
FvjqBUuUfx3CHMjjt/QQQDwTw18fU+hI5Ia0e6E1sHslurjTjqs/OJ0ANACY89Fx
|
||||
lA==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 2 Public Primary Certification Authority
|
||||
=======================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzELMAkG
|
||||
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
|
||||
cyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
|
||||
MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
|
||||
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAyIFB1YmxpYyBQcmlt
|
||||
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
||||
ADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZMJaLtVRKXxaeAufqDwSCg+i8VDXyh
|
||||
YGt+eSz6Bg86rvYbb7HS/y8oUl+DfUvEerf4Zh+AVPy3wo5ZShRXRtGak75BkQO7
|
||||
FYCTXOvnzAhsPz6zSvz/S2wj1VCCJkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0G
|
||||
CSqGSIb3DQEBAgUAA4GBAIobK/o5wXTXXtgZZKJYSi034DNHD6zt96rbHuSLBlxg
|
||||
J8pFUs4W7z8GZOeUaHxgMxURaa+dYo2jA1Rrpr7l7gUYYAS/QoD90KioHgE796Nc
|
||||
r6Pc5iaAIzy4RHT3Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2lw0Xd8rY
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 3 Public Primary Certification Authority
|
||||
=======================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
|
||||
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
|
||||
cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
|
||||
MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
|
||||
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
|
||||
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
||||
ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
|
||||
BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
|
||||
I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
|
||||
CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
|
||||
lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
|
||||
AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 1 Public Primary Certification Authority - G2
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
|
||||
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
|
||||
c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
|
||||
MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
|
||||
emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
|
||||
DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
|
||||
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMg
|
||||
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
|
||||
YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
|
||||
MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
|
||||
AQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgdk4xWArzZbxpvUjZudVYK
|
||||
VdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIqWpDBucSm
|
||||
Fc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQID
|
||||
AQABMA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0J
|
||||
h9ZrbWB85a7FkCMMXErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2ul
|
||||
uIncrKTdcu1OofdPvAbT6shkdHvClUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68
|
||||
DzFc6PLZ
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 2 Public Primary Certification Authority - G2
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQsw
|
||||
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0Ns
|
||||
YXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
|
||||
MjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y
|
||||
aXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazAe
|
||||
Fw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJVUzEX
|
||||
MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGlj
|
||||
IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMx
|
||||
KGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
|
||||
eTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazCBnzANBgkqhkiG9w0B
|
||||
AQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjxnNuX6Zr8wgQGE75fUsjM
|
||||
HiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRCwiNPStjw
|
||||
DqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cC
|
||||
AwEAATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9ji
|
||||
nb3/7aHmZuovCfTK1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAX
|
||||
rXfMSTWqz9iP0b63GJZHc2pUIjRkLbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnIn
|
||||
jBJ7xUS0rg==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 3 Public Primary Certification Authority - G2
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
|
||||
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
|
||||
c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
|
||||
MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
|
||||
emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
|
||||
DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
|
||||
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
|
||||
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
|
||||
YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
|
||||
MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
|
||||
AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
|
||||
pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
|
||||
13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
|
||||
AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
|
||||
U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
|
||||
F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
|
||||
oJ2daZH9
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 4 Public Primary Certification Authority - G2
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
|
||||
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
|
||||
c3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
|
||||
MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
|
||||
emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
|
||||
DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
|
||||
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMg
|
||||
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
|
||||
YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
|
||||
MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
|
||||
AQUAA4GNADCBiQKBgQC68OTP+cSuhVS5B1f5j8V/aBH4xBewRNzjMHPVKmIquNDM
|
||||
HO0oW369atyzkSTKQWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDHqGKB3FtK
|
||||
qsGgtG7rL+VXxbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwID
|
||||
AQABMA0GCSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwj
|
||||
cSGIL4LcY/oCRaxFWdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0y
|
||||
cyfYaT5DdPauxYma51N86Xv2S/PBZYPejYqcPIiNOVn8qj8ijaHBZlCBckztImRP
|
||||
T8qAkbYp
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 1 Public Primary Certification Authority - G3
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQsw
|
||||
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
|
||||
cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
|
||||
LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
|
||||
aWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
||||
dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
|
||||
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
|
||||
aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
|
||||
bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
|
||||
IENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
||||
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN2E1Lm0+afY8wR4
|
||||
nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/EbRrsC+MO
|
||||
8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjV
|
||||
ojYJrKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjb
|
||||
PG7PoBMAGrgnoeS+Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP2
|
||||
6KbqxzcSXKMpHgLZ2x87tNcPVkeBFQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vr
|
||||
n5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAq2aN17O6x5q25lXQBfGfMY1a
|
||||
qtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/Ny9Sn2WCVhDr4
|
||||
wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3
|
||||
ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrs
|
||||
pSCAaWihT37ha88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4
|
||||
E1Z5T21Q6huwtVexN2ZYI/PcD98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 2 Public Primary Certification Authority - G3
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJ
|
||||
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVy
|
||||
aVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24s
|
||||
IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNp
|
||||
Z24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
|
||||
eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJBgNV
|
||||
BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNp
|
||||
Z24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIElu
|
||||
Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24g
|
||||
Q2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
|
||||
IEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArwoNwtUs22e5LeWU
|
||||
J92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6tW8UvxDO
|
||||
JxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUY
|
||||
wZF7C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9o
|
||||
koqQHgiBVrKtaaNS0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjN
|
||||
qWm6o+sdDZykIKbBoMXRRkwXbdKsZj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/E
|
||||
Srg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0JhU8wI1NQ0kdvekhktdmnLfe
|
||||
xbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf0xwLRtxyID+u
|
||||
7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU
|
||||
sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RI
|
||||
sH/7NiXaldDxJBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTP
|
||||
cjnhsUPgKM+351psE2tJs//jGHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 3 Public Primary Certification Authority - G3
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
|
||||
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
|
||||
cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
|
||||
LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
|
||||
aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
||||
dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
|
||||
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
|
||||
aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
|
||||
bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
|
||||
IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
||||
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
|
||||
N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
|
||||
KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
|
||||
kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
|
||||
CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
|
||||
Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
|
||||
imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
|
||||
2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
|
||||
DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
|
||||
/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
|
||||
F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
|
||||
TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 4 Public Primary Certification Authority - G3
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
|
||||
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
|
||||
cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
|
||||
LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
|
||||
aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
||||
dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
|
||||
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
|
||||
aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
|
||||
bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
|
||||
IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
||||
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1
|
||||
GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ
|
||||
+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd
|
||||
U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm
|
||||
NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
|
||||
ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/
|
||||
ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1
|
||||
CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq
|
||||
g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
|
||||
fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c
|
||||
2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/
|
||||
bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Equifax Secure Global eBusiness CA
|
||||
==================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc
|
||||
MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT
|
||||
ZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIw
|
||||
MDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0VxdWlmYXggU2Vj
|
||||
dXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEdsb2JhbCBlQnVzaW5l
|
||||
c3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRVPEnC
|
||||
UdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc
|
||||
58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/
|
||||
o5brhTMhHD4ePmBudpxnhcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAH
|
||||
MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1dr
|
||||
aGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUA
|
||||
A4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkA
|
||||
Z70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv
|
||||
8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Equifax Secure eBusiness CA 1
|
||||
=============================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc
|
||||
MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT
|
||||
ZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw
|
||||
MDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j
|
||||
LjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ
|
||||
KoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo
|
||||
RvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu
|
||||
WqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw
|
||||
Env+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD
|
||||
AQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK
|
||||
eDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM
|
||||
zfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+
|
||||
WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN
|
||||
/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Equifax Secure eBusiness CA 2
|
||||
=============================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
||||
UzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2Vj
|
||||
dXJlIGVCdXNpbmVzcyBDQS0yMB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0
|
||||
NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkVxdWlmYXggU2VjdXJlMSYwJAYD
|
||||
VQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCBnzANBgkqhkiG9w0B
|
||||
AQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn2Z0G
|
||||
vxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/
|
||||
BPO3QSQ5BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0C
|
||||
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEX
|
||||
MBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJl
|
||||
IGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTkw
|
||||
NjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9euSBIplBq
|
||||
y/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQF
|
||||
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
||||
A4GBAAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy
|
||||
0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1
|
||||
E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Thawte Time Stamping CA
|
||||
=======================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCWkEx
|
||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzAN
|
||||
BgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAd
|
||||
BgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcNOTcwMTAxMDAwMDAwWhcN
|
||||
MjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4g
|
||||
Q2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsG
|
||||
A1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1l
|
||||
c3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANYrWHhhRYZT
|
||||
6jR7UZztsOYuGA7+4F+oJ9O0yeB8WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQa
|
||||
Wt9MevPZQx08EHp5JduQ/vBR5zDWQQD9nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL
|
||||
8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMB
|
||||
Af8wDQYJKoZIhvcNAQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCouqoEiYbC
|
||||
9RAIDb/LogWK0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQ
|
||||
pgCed/r8zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZ
|
||||
CayJSdM=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
thawte Primary Root CA
|
||||
======================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB
|
||||
qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
|
||||
Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
|
||||
MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
|
||||
BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw
|
||||
NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j
|
||||
LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG
|
||||
A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
||||
IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG
|
||||
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs
|
||||
W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta
|
||||
3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk
|
||||
6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6
|
||||
Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J
|
||||
NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
|
||||
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP
|
||||
r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU
|
||||
DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz
|
||||
YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
|
||||
xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2
|
||||
/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/
|
||||
LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7
|
||||
jVaMaA==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
VeriSign Class 3 Public Primary Certification Authority - G5
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
|
||||
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
||||
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
|
||||
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
|
||||
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
|
||||
aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
|
||||
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
|
||||
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
|
||||
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
|
||||
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
|
||||
aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
|
||||
nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
|
||||
t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
|
||||
SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
|
||||
BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
|
||||
rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
|
||||
NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
|
||||
BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
|
||||
BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
||||
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
|
||||
MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
|
||||
p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
|
||||
5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
|
||||
WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
|
||||
4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
|
||||
hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Entrust.net Secure Server Certification Authority
|
||||
=================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
|
||||
VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
|
||||
ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
|
||||
KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
|
||||
ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1
|
||||
MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE
|
||||
ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j
|
||||
b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
|
||||
bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg
|
||||
U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA
|
||||
A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/
|
||||
I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3
|
||||
wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC
|
||||
AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb
|
||||
oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
|
||||
BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
|
||||
dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk
|
||||
MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
|
||||
b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
|
||||
dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0
|
||||
MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi
|
||||
E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa
|
||||
MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
|
||||
hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN
|
||||
95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
|
||||
2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Go Daddy Certification Authority Root Certificate Bundle
|
||||
========================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMx
|
||||
ITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
|
||||
RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMTYw
|
||||
MTU0MzdaFw0yNjExMTYwMTU0MzdaMIHKMQswCQYDVQQGEwJVUzEQMA4GA1UECBMH
|
||||
QXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UEChMRR29EYWRkeS5j
|
||||
b20sIEluYy4xMzAxBgNVBAsTKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5j
|
||||
b20vcmVwb3NpdG9yeTEwMC4GA1UEAxMnR28gRGFkZHkgU2VjdXJlIENlcnRpZmlj
|
||||
YXRpb24gQXV0aG9yaXR5MREwDwYDVQQFEwgwNzk2OTI4NzCCASIwDQYJKoZIhvcN
|
||||
AQEBBQADggEPADCCAQoCggEBAMQt1RWMnCZM7DI161+4WQFapmGBWTtwY6vj3D3H
|
||||
KrjJM9N55DrtPDAjhI6zMBS2sofDPZVUBJ7fmd0LJR4h3mUpfjWoqVTr9vcyOdQm
|
||||
VZWt7/v+WIbXnvQAjYwqDL1CBM6nPwT27oDyqu9SoWlm2r4arV3aLGbqGmu75RpR
|
||||
SgAvSMeYddi5Kcju+GZtCpyz8/x4fKL4o/K1w/O5epHBp+YlLpyo7RJlbmr2EkRT
|
||||
cDCVw5wrWCs9CHRK8r5RsL+H0EwnWGu1NcWdrxcx+AuP7q2BNgWJCJjPOq8lh8BJ
|
||||
6qf9Z/dFjpfMFDniNoW1fho3/Rb2cRGadDAW/hOUoz+EDU8CAwEAAaOCATIwggEu
|
||||
MB0GA1UdDgQWBBT9rGEyk2xF1uLuhV+auud2mWjM5zAfBgNVHSMEGDAWgBTSxLDS
|
||||
kdRMEXGzYcs9of7dqGrU4zASBgNVHRMBAf8ECDAGAQH/AgEAMDMGCCsGAQUFBwEB
|
||||
BCcwJTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZ29kYWRkeS5jb20wRgYDVR0f
|
||||
BD8wPTA7oDmgN4Y1aHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBv
|
||||
c2l0b3J5L2dkcm9vdC5jcmwwSwYDVR0gBEQwQjBABgRVHSAAMDgwNgYIKwYBBQUH
|
||||
AgEWKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTAO
|
||||
BgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBANKGwOy9+aG2Z+5mC6IG
|
||||
OgRQjhVyrEp0lVPLN8tESe8HkGsz2ZbwlFalEzAFPIUyIXvJxwqoJKSQ3kbTJSMU
|
||||
A2fCENZvD117esyfxVgqwcSeIaha86ykRvOe5GPLL5CkKSkB2XIsKd83ASe8T+5o
|
||||
0yGPwLPk9Qnt0hCqU7S+8MxZC9Y7lhyVJEnfzuz9p0iRFEUOOjZv2kWzRaJBydTX
|
||||
RE4+uXR21aITVSzGh6O1mawGhId/dQb8vxRMDsxuxN89txJx9OjxUUAiKEngHUuH
|
||||
qDTMBqLdElrRhjZkAzVvb3du6/KFUJheqwNTrZEjYx8WnM25sgVjOuH0aBsXBTWV
|
||||
U+4=
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE+zCCBGSgAwIBAgICAQ0wDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1Zh
|
||||
bGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu
|
||||
Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24g
|
||||
QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAe
|
||||
BgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTA0MDYyOTE3MDYyMFoX
|
||||
DTI0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBE
|
||||
YWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0
|
||||
aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgC
|
||||
ggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
|
||||
2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+q
|
||||
N1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiO
|
||||
r18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lN
|
||||
f4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEH
|
||||
U1jPEX44dMX4/7VpkI+EdOqXG68CAQOjggHhMIIB3TAdBgNVHQ4EFgQU0sSw0pHU
|
||||
TBFxs2HLPaH+3ahq1OMwgdIGA1UdIwSByjCBx6GBwaSBvjCBuzEkMCIGA1UEBxMb
|
||||
VmFsaUNlcnQgVmFsaWRhdGlvbiBOZXR3b3JrMRcwFQYDVQQKEw5WYWxpQ2VydCwg
|
||||
SW5jLjE1MDMGA1UECxMsVmFsaUNlcnQgQ2xhc3MgMiBQb2xpY3kgVmFsaWRhdGlv
|
||||
biBBdXRob3JpdHkxITAfBgNVBAMTGGh0dHA6Ly93d3cudmFsaWNlcnQuY29tLzEg
|
||||
MB4GCSqGSIb3DQEJARYRaW5mb0B2YWxpY2VydC5jb22CAQEwDwYDVR0TAQH/BAUw
|
||||
AwEB/zAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmdv
|
||||
ZGFkZHkuY29tMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jZXJ0aWZpY2F0ZXMu
|
||||
Z29kYWRkeS5jb20vcmVwb3NpdG9yeS9yb290LmNybDBLBgNVHSAERDBCMEAGBFUd
|
||||
IAAwODA2BggrBgEFBQcCARYqaHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNv
|
||||
bS9yZXBvc2l0b3J5MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQC1
|
||||
QPmnHfbq/qQaQlpE9xXUhUaJwL6e4+PrxeNYiY+Sn1eocSxI0YGyeR+sBjUZsE4O
|
||||
WBsUs5iB0QQeyAfJg594RAoYC5jcdnplDQ1tgMQLARzLrUc+cb53S8wGd9D0Vmsf
|
||||
SxOaFIqII6hR8INMqzW/Rn453HWkrugp++85j09VZw==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
|
||||
IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
|
||||
BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
|
||||
aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
|
||||
9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy
|
||||
NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
|
||||
azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
|
||||
YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
|
||||
Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
|
||||
cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY
|
||||
dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9
|
||||
WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS
|
||||
v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v
|
||||
UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu
|
||||
IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC
|
||||
W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Basic configuration overwrite for Google API.
|
||||
*
|
||||
* @package core
|
||||
* @copyright Frédéric Massart <[email protected]>
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
global $CFG, $SITE;
|
||||
require_once($CFG->libdir . '/weblib.php');
|
||||
require_once($CFG->libdir . '/google/curlio.php');
|
||||
|
||||
make_temp_directory('googleapi');
|
||||
$GoogleConfigTempDir = $CFG->tempdir . '/googleapi';
|
||||
|
||||
global $apiConfig;
|
||||
$apiConfig = array(
|
||||
// The application_name is included in the User-Agent HTTP header.
|
||||
'application_name' => 'Moodle ' . $CFG->release,
|
||||
|
||||
// Site name to show in the Google's OAuth 1 authentication screen.
|
||||
'site_name' => $SITE->fullname,
|
||||
|
||||
// Which HTTP IO classes to use.
|
||||
'ioClass' => 'moodle_google_curlio',
|
||||
|
||||
// IO Class dependent configuration, you only have to configure the values
|
||||
// for the class that was configured as the ioClass above
|
||||
'ioFileCache_directory' => $GoogleConfigTempDir
|
||||
);
|
||||
@@ -0,0 +1,21 @@
|
||||
Google APIs Client Library for PHP
|
||||
==================================
|
||||
|
||||
Only the source and the README files have been kept in this directory.
|
||||
|
||||
The configuration (local_config.php) of this API specifies a different ioClass
|
||||
than the default one. This new ioClass has been defined in curlio.php and is
|
||||
named moodle_google_curlio, extending Google_CurlIO. The only reason to do
|
||||
that was that we could force Google lib to use our implementation of curl.
|
||||
If you upgrade the library, please check if the method Google_CurlIO::makeRequest()
|
||||
has been updated and would require change in moodle_google_curlio.
|
||||
|
||||
Information
|
||||
-----------
|
||||
|
||||
URL: http://code.google.com/p/google-api-php-client/
|
||||
Download from: http://code.google.com/p/google-api-php-client/downloads/list
|
||||
Documentation: http://code.google.com/p/google-api-php-client/w/list
|
||||
Global documentation: https://developers.google.com
|
||||
|
||||
Downloaded version: 0.6.0
|
||||
@@ -0,0 +1,110 @@
|
||||
<?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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Chirag Shah <[email protected]>
|
||||
*/
|
||||
class Google_BatchRequest {
|
||||
/** @var string Multipart Boundary. */
|
||||
private $boundary;
|
||||
|
||||
/** @var array service requests to be executed. */
|
||||
private $requests = array();
|
||||
|
||||
public function __construct($boundary = false) {
|
||||
$boundary = (false == $boundary) ? mt_rand() : $boundary;
|
||||
$this->boundary = str_replace('"', '', $boundary);
|
||||
}
|
||||
|
||||
public function add(Google_HttpRequest $request, $key = false) {
|
||||
if (false == $key) {
|
||||
$key = mt_rand();
|
||||
}
|
||||
|
||||
$this->requests[$key] = $request;
|
||||
}
|
||||
|
||||
public function execute() {
|
||||
$body = '';
|
||||
|
||||
/** @var Google_HttpRequest $req */
|
||||
foreach($this->requests as $key => $req) {
|
||||
$body .= "--{$this->boundary}\n";
|
||||
$body .= $req->toBatchString($key) . "\n";
|
||||
}
|
||||
|
||||
$body = rtrim($body);
|
||||
$body .= "\n--{$this->boundary}--";
|
||||
|
||||
global $apiConfig;
|
||||
$url = $apiConfig['basePath'] . '/batch';
|
||||
$httpRequest = new Google_HttpRequest($url, 'POST');
|
||||
$httpRequest->setRequestHeaders(array(
|
||||
'Content-Type' => 'multipart/mixed; boundary=' . $this->boundary));
|
||||
|
||||
$httpRequest->setPostBody($body);
|
||||
$response = Google_Client::$io->makeRequest($httpRequest);
|
||||
|
||||
$response = $this->parseResponse($response);
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function parseResponse(Google_HttpRequest $response) {
|
||||
$contentType = $response->getResponseHeader('content-type');
|
||||
$contentType = explode(';', $contentType);
|
||||
$boundary = false;
|
||||
foreach($contentType as $part) {
|
||||
$part = (explode('=', $part, 2));
|
||||
if (isset($part[0]) && 'boundary' == trim($part[0])) {
|
||||
$boundary = $part[1];
|
||||
}
|
||||
}
|
||||
|
||||
$body = $response->getResponseBody();
|
||||
if ($body) {
|
||||
$body = str_replace("--$boundary--", "--$boundary", $body);
|
||||
$parts = explode("--$boundary", $body);
|
||||
$responses = array();
|
||||
|
||||
foreach($parts as $part) {
|
||||
$part = trim($part);
|
||||
if (!empty($part)) {
|
||||
list($metaHeaders, $part) = explode("\r\n\r\n", $part, 2);
|
||||
$metaHeaders = Google_CurlIO::parseResponseHeaders($metaHeaders);
|
||||
|
||||
$status = substr($part, 0, strpos($part, "\n"));
|
||||
$status = explode(" ", $status);
|
||||
$status = $status[1];
|
||||
|
||||
list($partHeaders, $partBody) = Google_CurlIO::parseHttpResponse($part, false);
|
||||
$response = new Google_HttpRequest("");
|
||||
$response->setResponseHttpCode($status);
|
||||
$response->setResponseHeaders($partHeaders);
|
||||
$response->setResponseBody($partBody);
|
||||
$response = Google_REST::decodeHttpResponse($response);
|
||||
|
||||
// Need content id.
|
||||
$responses[$metaHeaders['content-id']] = $response;
|
||||
}
|
||||
}
|
||||
|
||||
return $responses;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,244 @@
|
||||
<?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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Chirag Shah <[email protected]>
|
||||
*
|
||||
*/
|
||||
class Google_MediaFileUpload {
|
||||
const UPLOAD_MEDIA_TYPE = 'media';
|
||||
const UPLOAD_MULTIPART_TYPE = 'multipart';
|
||||
const UPLOAD_RESUMABLE_TYPE = 'resumable';
|
||||
|
||||
/** @var string $mimeType */
|
||||
public $mimeType;
|
||||
|
||||
/** @var string $data */
|
||||
public $data;
|
||||
|
||||
/** @var bool $resumable */
|
||||
public $resumable;
|
||||
|
||||
/** @var int $chunkSize */
|
||||
public $chunkSize;
|
||||
|
||||
/** @var int $size */
|
||||
public $size;
|
||||
|
||||
/** @var string $resumeUri */
|
||||
public $resumeUri;
|
||||
|
||||
/** @var int $progress */
|
||||
public $progress;
|
||||
|
||||
/**
|
||||
* @param $mimeType string
|
||||
* @param $data string The bytes you want to upload.
|
||||
* @param $resumable bool
|
||||
* @param bool $chunkSize File will be uploaded in chunks of this many bytes.
|
||||
* only used if resumable=True
|
||||
*/
|
||||
public function __construct($mimeType, $data, $resumable=false, $chunkSize=false) {
|
||||
$this->mimeType = $mimeType;
|
||||
$this->data = $data;
|
||||
$this->size = strlen($this->data);
|
||||
$this->resumable = $resumable;
|
||||
if(!$chunkSize) {
|
||||
$this->chunkSize = 256 * 1024;
|
||||
}
|
||||
|
||||
$this->progress = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @param $meta
|
||||
* @param $params
|
||||
* @return array|bool
|
||||
*/
|
||||
public static function process($meta, &$params) {
|
||||
$payload = array();
|
||||
$meta = is_string($meta) ? json_decode($meta, true) : $meta;
|
||||
$uploadType = self::getUploadType($meta, $payload, $params);
|
||||
if (!$uploadType) {
|
||||
// Process as a normal API request.
|
||||
return false;
|
||||
}
|
||||
|
||||
// Process as a media upload request.
|
||||
$params['uploadType'] = array(
|
||||
'type' => 'string',
|
||||
'location' => 'query',
|
||||
'value' => $uploadType,
|
||||
);
|
||||
|
||||
if (isset($params['file'])) {
|
||||
// This is a standard file upload with curl.
|
||||
$file = $params['file']['value'];
|
||||
unset($params['file']);
|
||||
return self::processFileUpload($file);
|
||||
}
|
||||
|
||||
$mimeType = isset($params['mimeType'])
|
||||
? $params['mimeType']['value']
|
||||
: false;
|
||||
unset($params['mimeType']);
|
||||
|
||||
$data = isset($params['data'])
|
||||
? $params['data']['value']
|
||||
: false;
|
||||
unset($params['data']);
|
||||
|
||||
if (self::UPLOAD_RESUMABLE_TYPE == $uploadType) {
|
||||
$payload['content-type'] = $mimeType;
|
||||
|
||||
} elseif (self::UPLOAD_MEDIA_TYPE == $uploadType) {
|
||||
// This is a simple media upload.
|
||||
$payload['content-type'] = $mimeType;
|
||||
$payload['postBody'] = $data;
|
||||
}
|
||||
|
||||
elseif (self::UPLOAD_MULTIPART_TYPE == $uploadType) {
|
||||
// This is a multipart/related upload.
|
||||
$boundary = isset($params['boundary']['value']) ? $params['boundary']['value'] : mt_rand();
|
||||
$boundary = str_replace('"', '', $boundary);
|
||||
$payload['content-type'] = 'multipart/related; boundary=' . $boundary;
|
||||
$related = "--$boundary\r\n";
|
||||
$related .= "Content-Type: application/json; charset=UTF-8\r\n";
|
||||
$related .= "\r\n" . json_encode($meta) . "\r\n";
|
||||
$related .= "--$boundary\r\n";
|
||||
$related .= "Content-Type: $mimeType\r\n";
|
||||
$related .= "Content-Transfer-Encoding: base64\r\n";
|
||||
$related .= "\r\n" . base64_encode($data) . "\r\n";
|
||||
$related .= "--$boundary--";
|
||||
$payload['postBody'] = $related;
|
||||
}
|
||||
|
||||
return $payload;
|
||||
}
|
||||
|
||||
/**
|
||||
* Process standard file uploads.
|
||||
* @param $file
|
||||
* @internal param $fileName
|
||||
* @return array Inclues the processed file name.
|
||||
* @visible For testing.
|
||||
*/
|
||||
public static function processFileUpload($file) {
|
||||
if (!$file) return array();
|
||||
if (substr($file, 0, 1) != '@') {
|
||||
$file = '@' . $file;
|
||||
}
|
||||
|
||||
// This is a standard file upload with curl.
|
||||
return array('postBody' => array('file' => $file));
|
||||
}
|
||||
|
||||
/**
|
||||
* Valid upload types:
|
||||
* - resumable (UPLOAD_RESUMABLE_TYPE)
|
||||
* - media (UPLOAD_MEDIA_TYPE)
|
||||
* - multipart (UPLOAD_MULTIPART_TYPE)
|
||||
* - none (false)
|
||||
* @param $meta
|
||||
* @param $payload
|
||||
* @param $params
|
||||
* @return bool|string
|
||||
*/
|
||||
public static function getUploadType($meta, &$payload, &$params) {
|
||||
if (isset($params['mediaUpload'])
|
||||
&& get_class($params['mediaUpload']['value']) == 'Google_MediaFileUpload') {
|
||||
$upload = $params['mediaUpload']['value'];
|
||||
unset($params['mediaUpload']);
|
||||
$payload['content-type'] = $upload->mimeType;
|
||||
if (isset($upload->resumable) && $upload->resumable) {
|
||||
return self::UPLOAD_RESUMABLE_TYPE;
|
||||
}
|
||||
}
|
||||
|
||||
// Allow the developer to override the upload type.
|
||||
if (isset($params['uploadType'])) {
|
||||
return $params['uploadType']['value'];
|
||||
}
|
||||
|
||||
$data = isset($params['data']['value'])
|
||||
? $params['data']['value'] : false;
|
||||
|
||||
if (false == $data && false == isset($params['file'])) {
|
||||
// No upload data available.
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isset($params['file'])) {
|
||||
return self::UPLOAD_MEDIA_TYPE;
|
||||
}
|
||||
|
||||
if (false == $meta) {
|
||||
return self::UPLOAD_MEDIA_TYPE;
|
||||
}
|
||||
|
||||
return self::UPLOAD_MULTIPART_TYPE;
|
||||
}
|
||||
|
||||
|
||||
public function nextChunk(Google_HttpRequest $req) {
|
||||
if (false == $this->resumeUri) {
|
||||
$this->resumeUri = $this->getResumeUri($req);
|
||||
}
|
||||
|
||||
$data = substr($this->data, $this->progress, $this->chunkSize);
|
||||
$lastBytePos = $this->progress + strlen($data) - 1;
|
||||
$headers = array(
|
||||
'content-range' => "bytes $this->progress-$lastBytePos/$this->size",
|
||||
'content-type' => $req->getRequestHeader('content-type'),
|
||||
'content-length' => $this->chunkSize,
|
||||
'expect' => '',
|
||||
);
|
||||
|
||||
$httpRequest = new Google_HttpRequest($this->resumeUri, 'PUT', $headers, $data);
|
||||
$response = Google_Client::$io->authenticatedRequest($httpRequest);
|
||||
$code = $response->getResponseHttpCode();
|
||||
if (308 == $code) {
|
||||
$range = explode('-', $response->getResponseHeader('range'));
|
||||
$this->progress = $range[1] + 1;
|
||||
return false;
|
||||
} else {
|
||||
return Google_REST::decodeHttpResponse($response);
|
||||
}
|
||||
}
|
||||
|
||||
private function getResumeUri(Google_HttpRequest $httpRequest) {
|
||||
$result = null;
|
||||
$body = $httpRequest->getPostBody();
|
||||
if ($body) {
|
||||
$httpRequest->setRequestHeaders(array(
|
||||
'content-type' => 'application/json; charset=UTF-8',
|
||||
'content-length' => Google_Utils::getStrLen($body),
|
||||
'x-upload-content-type' => $this->mimeType,
|
||||
'expect' => '',
|
||||
));
|
||||
}
|
||||
|
||||
$response = Google_Client::$io->makeRequest($httpRequest);
|
||||
$location = $response->getResponseHeader('location');
|
||||
$code = $response->getResponseHttpCode();
|
||||
if (200 == $code && true == $location) {
|
||||
return $location;
|
||||
}
|
||||
throw new Google_Exception("Failed to start the resumable upload");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* This class defines attributes, valid values, and usage which is generated from
|
||||
* a given json schema. http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5
|
||||
*
|
||||
* @author Chirag Shah <[email protected]>
|
||||
*
|
||||
*/
|
||||
class Google_Model {
|
||||
public function __construct( /* polymorphic */ ) {
|
||||
if (func_num_args() == 1 && is_array(func_get_arg(0))) {
|
||||
// Initialize the model with the array's contents.
|
||||
$array = func_get_arg(0);
|
||||
$this->mapTypes($array);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize this object's properties from an array.
|
||||
*
|
||||
* @param array $array Used to seed this object's properties.
|
||||
* @return void
|
||||
*/
|
||||
protected function mapTypes($array) {
|
||||
foreach ($array as $key => $val) {
|
||||
$this->$key = $val;
|
||||
|
||||
$keyTypeName = "__$key" . 'Type';
|
||||
$keyDataType = "__$key" . 'DataType';
|
||||
if ($this->useObjects() && property_exists($this, $keyTypeName)) {
|
||||
if ($this->isAssociativeArray($val)) {
|
||||
if (isset($this->$keyDataType) && 'map' == $this->$keyDataType) {
|
||||
foreach($val as $arrayKey => $arrayItem) {
|
||||
$val[$arrayKey] = $this->createObjectFromName($keyTypeName, $arrayItem);
|
||||
}
|
||||
$this->$key = $val;
|
||||
} else {
|
||||
$this->$key = $this->createObjectFromName($keyTypeName, $val);
|
||||
}
|
||||
} else if (is_array($val)) {
|
||||
$arrayObject = array();
|
||||
foreach ($val as $arrayIndex => $arrayItem) {
|
||||
$arrayObject[$arrayIndex] = $this->createObjectFromName($keyTypeName, $arrayItem);
|
||||
}
|
||||
$this->$key = $arrayObject;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true only if the array is associative.
|
||||
* @param array $array
|
||||
* @return bool True if the array is associative.
|
||||
*/
|
||||
protected function isAssociativeArray($array) {
|
||||
if (!is_array($array)) {
|
||||
return false;
|
||||
}
|
||||
$keys = array_keys($array);
|
||||
foreach($keys as $key) {
|
||||
if (is_string($key)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Given a variable name, discover its type.
|
||||
*
|
||||
* @param $name
|
||||
* @param $item
|
||||
* @return object The object from the item.
|
||||
*/
|
||||
private function createObjectFromName($name, $item) {
|
||||
$type = $this->$name;
|
||||
return new $type($item);
|
||||
}
|
||||
|
||||
protected function useObjects() {
|
||||
global $apiConfig;
|
||||
return (isset($apiConfig['use_objects']) && $apiConfig['use_objects']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify if $obj is an array.
|
||||
* @throws Google_Exception Thrown if $obj isn't an array.
|
||||
* @param array $obj Items that should be validated.
|
||||
* @param string $type Array items should be of this type.
|
||||
* @param string $method Method expecting an array as an argument.
|
||||
*/
|
||||
public function assertIsArray($obj, $type, $method) {
|
||||
if ($obj && !is_array($obj)) {
|
||||
throw new Google_Exception("Incorrect parameter type passed to $method(), expected an"
|
||||
. " array containing items of type $type.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?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.
|
||||
*/
|
||||
|
||||
class Google_Service {
|
||||
public $version;
|
||||
public $servicePath;
|
||||
public $resource;
|
||||
}
|
||||
@@ -0,0 +1,196 @@
|
||||
<?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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implements the actual methods/resources of the discovered Google API using magic function
|
||||
* calling overloading (__call()), which on call will see if the method name (plus.activities.list)
|
||||
* is available in this service, and if so construct an apiHttpRequest representing it.
|
||||
*
|
||||
* @author Chris Chabot <[email protected]>
|
||||
* @author Chirag Shah <[email protected]>
|
||||
*
|
||||
*/
|
||||
class Google_ServiceResource {
|
||||
// Valid query parameters that work, but don't appear in discovery.
|
||||
private $stackParameters = array(
|
||||
'alt' => array('type' => 'string', 'location' => 'query'),
|
||||
'boundary' => array('type' => 'string', 'location' => 'query'),
|
||||
'fields' => array('type' => 'string', 'location' => 'query'),
|
||||
'trace' => array('type' => 'string', 'location' => 'query'),
|
||||
'userIp' => array('type' => 'string', 'location' => 'query'),
|
||||
'userip' => array('type' => 'string', 'location' => 'query'),
|
||||
'file' => array('type' => 'complex', 'location' => 'body'),
|
||||
'data' => array('type' => 'string', 'location' => 'body'),
|
||||
'mimeType' => array('type' => 'string', 'location' => 'header'),
|
||||
'uploadType' => array('type' => 'string', 'location' => 'query'),
|
||||
'mediaUpload' => array('type' => 'complex', 'location' => 'query'),
|
||||
);
|
||||
|
||||
/** @var Google_Service $service */
|
||||
private $service;
|
||||
|
||||
/** @var string $serviceName */
|
||||
private $serviceName;
|
||||
|
||||
/** @var string $resourceName */
|
||||
private $resourceName;
|
||||
|
||||
/** @var array $methods */
|
||||
private $methods;
|
||||
|
||||
public function __construct($service, $serviceName, $resourceName, $resource) {
|
||||
$this->service = $service;
|
||||
$this->serviceName = $serviceName;
|
||||
$this->resourceName = $resourceName;
|
||||
$this->methods = isset($resource['methods']) ? $resource['methods'] : array($resourceName => $resource);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param $arguments
|
||||
* @return Google_HttpRequest|array
|
||||
* @throws Google_Exception
|
||||
*/
|
||||
public function __call($name, $arguments) {
|
||||
if (! isset($this->methods[$name])) {
|
||||
throw new Google_Exception("Unknown function: {$this->serviceName}->{$this->resourceName}->{$name}()");
|
||||
}
|
||||
$method = $this->methods[$name];
|
||||
$parameters = $arguments[0];
|
||||
|
||||
// postBody is a special case since it's not defined in the discovery document as parameter, but we abuse the param entry for storing it
|
||||
$postBody = null;
|
||||
if (isset($parameters['postBody'])) {
|
||||
if (is_object($parameters['postBody'])) {
|
||||
$this->stripNull($parameters['postBody']);
|
||||
}
|
||||
|
||||
// Some APIs require the postBody to be set under the data key.
|
||||
if (is_array($parameters['postBody']) && 'latitude' == $this->serviceName) {
|
||||
if (!isset($parameters['postBody']['data'])) {
|
||||
$rawBody = $parameters['postBody'];
|
||||
unset($parameters['postBody']);
|
||||
$parameters['postBody']['data'] = $rawBody;
|
||||
}
|
||||
}
|
||||
|
||||
$postBody = is_array($parameters['postBody']) || is_object($parameters['postBody'])
|
||||
? json_encode($parameters['postBody'])
|
||||
: $parameters['postBody'];
|
||||
unset($parameters['postBody']);
|
||||
|
||||
if (isset($parameters['optParams'])) {
|
||||
$optParams = $parameters['optParams'];
|
||||
unset($parameters['optParams']);
|
||||
$parameters = array_merge($parameters, $optParams);
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($method['parameters'])) {
|
||||
$method['parameters'] = array();
|
||||
}
|
||||
|
||||
$method['parameters'] = array_merge($method['parameters'], $this->stackParameters);
|
||||
foreach ($parameters as $key => $val) {
|
||||
if ($key != 'postBody' && ! isset($method['parameters'][$key])) {
|
||||
throw new Google_Exception("($name) unknown parameter: '$key'");
|
||||
}
|
||||
}
|
||||
if (isset($method['parameters'])) {
|
||||
foreach ($method['parameters'] as $paramName => $paramSpec) {
|
||||
if (isset($paramSpec['required']) && $paramSpec['required'] && ! isset($parameters[$paramName])) {
|
||||
throw new Google_Exception("($name) missing required param: '$paramName'");
|
||||
}
|
||||
if (isset($parameters[$paramName])) {
|
||||
$value = $parameters[$paramName];
|
||||
$parameters[$paramName] = $paramSpec;
|
||||
$parameters[$paramName]['value'] = $value;
|
||||
unset($parameters[$paramName]['required']);
|
||||
} else {
|
||||
unset($parameters[$paramName]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Discovery v1.0 puts the canonical method id under the 'id' field.
|
||||
if (! isset($method['id'])) {
|
||||
$method['id'] = $method['rpcMethod'];
|
||||
}
|
||||
|
||||
// Discovery v1.0 puts the canonical path under the 'path' field.
|
||||
if (! isset($method['path'])) {
|
||||
$method['path'] = $method['restPath'];
|
||||
}
|
||||
|
||||
$servicePath = $this->service->servicePath;
|
||||
|
||||
// Process Media Request
|
||||
$contentType = false;
|
||||
if (isset($method['mediaUpload'])) {
|
||||
$media = Google_MediaFileUpload::process($postBody, $parameters);
|
||||
if ($media) {
|
||||
$contentType = isset($media['content-type']) ? $media['content-type']: null;
|
||||
$postBody = isset($media['postBody']) ? $media['postBody'] : null;
|
||||
$servicePath = $method['mediaUpload']['protocols']['simple']['path'];
|
||||
$method['path'] = '';
|
||||
}
|
||||
}
|
||||
|
||||
$url = Google_REST::createRequestUri($servicePath, $method['path'], $parameters);
|
||||
$httpRequest = new Google_HttpRequest($url, $method['httpMethod'], null, $postBody);
|
||||
if ($postBody) {
|
||||
$contentTypeHeader = array();
|
||||
if (isset($contentType) && $contentType) {
|
||||
$contentTypeHeader['content-type'] = $contentType;
|
||||
} else {
|
||||
$contentTypeHeader['content-type'] = 'application/json; charset=UTF-8';
|
||||
$contentTypeHeader['content-length'] = Google_Utils::getStrLen($postBody);
|
||||
}
|
||||
$httpRequest->setRequestHeaders($contentTypeHeader);
|
||||
}
|
||||
|
||||
$httpRequest = Google_Client::$auth->sign($httpRequest);
|
||||
if (Google_Client::$useBatch) {
|
||||
return $httpRequest;
|
||||
}
|
||||
|
||||
// Terminate immediatly if this is a resumable request.
|
||||
if (isset($parameters['uploadType']['value'])
|
||||
&& 'resumable' == $parameters['uploadType']['value']) {
|
||||
return $httpRequest;
|
||||
}
|
||||
|
||||
return Google_REST::execute($httpRequest);
|
||||
}
|
||||
|
||||
public function useObjects() {
|
||||
global $apiConfig;
|
||||
return (isset($apiConfig['use_objects']) && $apiConfig['use_objects']);
|
||||
}
|
||||
|
||||
protected function stripNull(&$o) {
|
||||
$o = (array) $o;
|
||||
foreach ($o as $k => $v) {
|
||||
if ($v === null || strstr($k, "\0*\0__")) {
|
||||
unset($o[$k]);
|
||||
}
|
||||
elseif (is_object($v) || is_array($v)) {
|
||||
$this->stripNull($o[$k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Collection of static utility methods used for convenience across
|
||||
* the client library.
|
||||
*
|
||||
* @author Chirag Shah <[email protected]>
|
||||
*/
|
||||
class Google_Utils {
|
||||
public static function urlSafeB64Encode($data) {
|
||||
$b64 = base64_encode($data);
|
||||
$b64 = str_replace(array('+', '/', '\r', '\n', '='),
|
||||
array('-', '_'),
|
||||
$b64);
|
||||
return $b64;
|
||||
}
|
||||
|
||||
public static function urlSafeB64Decode($b64) {
|
||||
$b64 = str_replace(array('-', '_'),
|
||||
array('+', '/'),
|
||||
$b64);
|
||||
return base64_decode($b64);
|
||||
}
|
||||
|
||||
/**
|
||||
* Misc function used to count the number of bytes in a post body, in the world of multi-byte chars
|
||||
* and the unpredictability of strlen/mb_strlen/sizeof, this is the only way to do that in a sane
|
||||
* manner at the moment.
|
||||
*
|
||||
* This algorithm was originally developed for the
|
||||
* Solar Framework by Paul M. Jones
|
||||
*
|
||||
* @link http://solarphp.com/
|
||||
* @link http://svn.solarphp.com/core/trunk/Solar/Json.php
|
||||
* @link http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Json/Decoder.php
|
||||
* @param string $str
|
||||
* @return int The number of bytes in a string.
|
||||
*/
|
||||
static public function getStrLen($str) {
|
||||
$strlenVar = strlen($str);
|
||||
$d = $ret = 0;
|
||||
for ($count = 0; $count < $strlenVar; ++ $count) {
|
||||
$ordinalValue = ord($str{$ret});
|
||||
switch (true) {
|
||||
case (($ordinalValue >= 0x20) && ($ordinalValue <= 0x7F)):
|
||||
// characters U-00000000 - U-0000007F (same as ASCII)
|
||||
$ret ++;
|
||||
break;
|
||||
|
||||
case (($ordinalValue & 0xE0) == 0xC0):
|
||||
// characters U-00000080 - U-000007FF, mask 110XXXXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$ret += 2;
|
||||
break;
|
||||
|
||||
case (($ordinalValue & 0xF0) == 0xE0):
|
||||
// characters U-00000800 - U-0000FFFF, mask 1110XXXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$ret += 3;
|
||||
break;
|
||||
|
||||
case (($ordinalValue & 0xF8) == 0xF0):
|
||||
// characters U-00010000 - U-001FFFFF, mask 11110XXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$ret += 4;
|
||||
break;
|
||||
|
||||
case (($ordinalValue & 0xFC) == 0xF8):
|
||||
// characters U-00200000 - U-03FFFFFF, mask 111110XX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$ret += 5;
|
||||
break;
|
||||
|
||||
case (($ordinalValue & 0xFE) == 0xFC):
|
||||
// characters U-04000000 - U-7FFFFFFF, mask 1111110X
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$ret += 6;
|
||||
break;
|
||||
default:
|
||||
$ret ++;
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Normalize all keys in an array to lower-case.
|
||||
* @param array $arr
|
||||
* @return array Normalized array.
|
||||
*/
|
||||
public static function normalize($arr) {
|
||||
if (!is_array($arr)) {
|
||||
return array();
|
||||
}
|
||||
|
||||
$normalized = array();
|
||||
foreach ($arr as $key => $val) {
|
||||
$normalized[strtolower($key)] = $val;
|
||||
}
|
||||
return $normalized;
|
||||
}
|
||||
}
|
||||
@@ -63,6 +63,13 @@
|
||||
<version>1.0.0</version>
|
||||
<licenseversion>2.1+</licenseversion>
|
||||
</library>
|
||||
<library>
|
||||
<location>google</location>
|
||||
<name>Google APIs Client Library</name>
|
||||
<license>Apache</license>
|
||||
<version>0.6.0</version>
|
||||
<licenseversion>2.0</licenseversion>
|
||||
</library>
|
||||
<library>
|
||||
<location>htmlpurifier</location>
|
||||
<name>HTML Purifier</name>
|
||||
|
||||
Reference in New Issue
Block a user