summaryrefslogtreecommitdiffstats
path: root/includes/google-api-php-client-master/examples/service-account.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/google-api-php-client-master/examples/service-account.php')
-rw-r--r--includes/google-api-php-client-master/examples/service-account.php89
1 files changed, 89 insertions, 0 deletions
diff --git a/includes/google-api-php-client-master/examples/service-account.php b/includes/google-api-php-client-master/examples/service-account.php
new file mode 100644
index 0000000..46005f5
--- /dev/null
+++ b/includes/google-api-php-client-master/examples/service-account.php
@@ -0,0 +1,89 @@
+<?php
+/*
+ * Copyright 2013 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.
+ */
+session_start();
+include_once "templates/base.php";
+
+/************************************************
+ Make an API request authenticated with a service
+ account.
+ ************************************************/
+require_once realpath(dirname(__FILE__) . '/../src/Google/autoload.php');
+
+/************************************************
+ ATTENTION: Fill in these values! You can get
+ them by creating a new Service Account in the
+ API console. Be sure to store the key file
+ somewhere you can get to it - though in real
+ operations you'd want to make sure it wasn't
+ accessible from the webserver!
+ The name is the email address value provided
+ as part of the service account (not your
+ address!)
+ Make sure the Books API is enabled on this
+ account as well, or the call will fail.
+ ************************************************/
+$client_id = '<YOUR_CLIENT_ID>'; //Client ID
+$service_account_name = ''; //Email Address
+$key_file_location = ''; //key.p12
+
+echo pageHeader("Service Account Access");
+if (strpos($client_id, "googleusercontent") == false
+ || !strlen($service_account_name)
+ || !strlen($key_file_location)) {
+ echo missingServiceAccountDetailsWarning();
+ exit;
+}
+
+$client = new Google_Client();
+$client->setApplicationName("Client_Library_Examples");
+$service = new Google_Service_Books($client);
+
+/************************************************
+ If we have an access token, we can carry on.
+ Otherwise, we'll get one with the help of an
+ assertion credential. In other examples the list
+ of scopes was managed by the Client, but here
+ we have to list them manually. We also supply
+ the service account
+ ************************************************/
+if (isset($_SESSION['service_token'])) {
+ $client->setAccessToken($_SESSION['service_token']);
+}
+$key = file_get_contents($key_file_location);
+$cred = new Google_Auth_AssertionCredentials(
+ $service_account_name,
+ array('https://www.googleapis.com/auth/books'),
+ $key
+);
+$client->setAssertionCredentials($cred);
+if ($client->getAuth()->isAccessTokenExpired()) {
+ $client->getAuth()->refreshTokenWithAssertion($cred);
+}
+$_SESSION['service_token'] = $client->getAccessToken();
+
+/************************************************
+ We're just going to make the same call as in the
+ simple query as an example.
+ ************************************************/
+$optParams = array('filter' => 'free-ebooks');
+$results = $service->volumes->listVolumes('Henry David Thoreau', $optParams);
+echo "<h3>Results Of Call:</h3>";
+foreach ($results as $item) {
+ echo $item['volumeInfo']['title'], "<br /> \n";
+}
+
+echo pageFooter(__FILE__);