API de Google Plus con PHP

Por fin y después de la espera, se ha liberado el API de Google+, y podrán implementarlo con PHP lo primero que necesitaremos, evidentemente, es la API oficial de Google, que podemos descargar desde CodeGoogle. Descomprimimos el archivo y lo subimos a nuestro servidor.

Ten en cuenta que GooglePlus por el momento solo incluye permisos de lectura y no incluye los circulos.

1.- Registra tu cuenta, para obtener tu AccessToken en https://code.google.com/apis/accounts/docs/OAuth2.html#Registering o en https://code.google.com/apis/console/?api=plus

– Desde «Inicio Proyecto», activa el acceso a «Google + API».
– Haga clic en «Acceso a la API» en la columna de la izquierda
– Haga clic en el botón «Crear una ID OAuth2»
– Ingresa el nombre de tu aplicación y haz clic en «Siguiente»
– Seleccione «Web Application» como el «tipo de aplicaciones»
– Haz clic en «Crear ID de cliente»
– Haz clic en «Editar…» para su ID de cliente nuevo
– Bajo la «dirección de devolución de llamada», introduzca la dirección URL completa para su aplicación PHP (ejemplo https://www.jorgealdana.pro/blog/googleplus/index.php).

2.- Puedes utilizar el cliente oficial de Google para OAuth en: http://google-api-php-client.googlecode.com/files/google-api-php-client-0.4.4.tar.gz

Ejemplo para obtener actividades de tu cuenta:

<?php

require_once 'google-api-php-client/src/apiClient.php';
require_once 'google-api-php-client/src/contrib/apiPlusService.php';

session_start();

$client = new apiClient();
$client->setApplicationName("Google+ PHP Starter Application");
// VISITA https://code.google.com/apis/console PARA GENERAR TU KEY
// oauth2_client_id, oauth2_client_secret, and to register your oauth2_redirect_uri.
$client->setClientId('AQUI VA TU oauth2_client_id');
$client->setClientSecret('AQUI VA TU oauth2_client_secret');
$client->setRedirectUri('AQUI VA TU oauth2_redirect_uri');
$client->setDeveloperKey('AQUI VA TU developer_key');
$client->setScopes(array('https://www.googleapis.com/auth/plus.me'));
$plus = new apiPlusService($client);

if (isset($_REQUEST['logout'])) {
unset($_SESSION['access_token']);
}

if (isset($_GET['code'])) {
$client->authenticate();
$_SESSION['access_token'] = $client->getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}

if (isset($_SESSION['access_token'])) {
$client->setAccessToken($_SESSION['access_token']);
}

if ($client->getAccessToken()) {
$me = $plus->people->get('me');

$optParams = array('maxResults' => 100);
$activities = $plus->activities->listActivities('me', 'public', $optParams);

// The access token may have been updated lazily.
$_SESSION['access_token'] = $client->getAccessToken();
} else {
$authUrl = $client->createAuthUrl();
}
?>
<!doctype html>
<html>
<head>
<style media="all" type="text/css">
body {
font-family: Arial,sans-serif;
margin: auto;
}

.box {
border: .5em solid #E3E9FF;
-webkit-box-orient: vertical;
-webkit-box-align: center;
-moz-box-orient: vertical;
-moz-box-align: center;
display: block;
box-orient: vertical;
box-align: center;
width: 350px;
height: auto;
margin: auto;
padding: 10px;
word-wrap: break-word;
text-overflow: ellipsis;
}

.me {
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
width: 100px;
}

.activities {
-webkit-box-flex: 2;
-moz-box-flex: 2;
box-flex: 2;
width:100%;
}

.activity {
margin: 10px;
}

header {
color:#000;
padding:2px 5px;
font-size:100%;
width: 400px;
margin: auto;
text-align: center
}

header h1.logo {
margin:6px 0;
padding:0;
cursor:pointer;
font-size:24px;
line-height:20px;
}

.login {
font-size: 200%;
display: block;
margin: auto;
cursor: pointer;
text-align: center;
font-weight: bold;
color: #2779AA;
line-height: normal;
}

.logout {
font-weight: normal;
padding-top: -5px;
margin-top: 0px;
}
</style>
</head>
<body>
<header><h1>Google+ Sample App</h1></header>
<div class="box">

<?php if(isset($me) && isset($activities)): ?>
<div class="me">
<a rel="me" href="<?php echo $me['url'] ?>"><?php print $me['displayName'] ?></a>
<div><img src="<?php echo $me['image']['url'];?>?sz=82" /></div>
</div>

<div class="activities">Your Activities:
<?php foreach($activities['items'] as $activity): ?>
<div class="activity">
<a href="<?php print $activity['url'] ?>"><?php print $activity['title'] ?></a>
</div>
<?php endforeach ?>
</div>
<?php endif ?>
<?php
if(isset($authUrl)) {
print "<a class='login' href='$authUrl'>Connect Me!</a>";
} else {
print "<a class='logout' href='?logout'>Logout</a>";
}
?>
</div>
</body>
</html>

Estas son las direcciones para solicitudes directas:

https://www.googleapis.com/plus/v1/people/107375088959448261459?key=TUAPIKEY
https://www.googleapis.com/plus/v1/people/107375088959448261459/activities/public?key=TUAPIKEY

4 Comments

  1. jorge24/09/2011
  2. Puchungo25/09/2011
  3. jorge25/09/2011
  4. jorge25/09/2011

Leave a Reply

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.