Foros del Web » Programando para Internet » PHP »

Conectar con API de Google Calendar desde PHP

Estas en el tema de Conectar con API de Google Calendar desde PHP en el foro de PHP en Foros del Web. Buenas a todos. Me gustaría poder acceder desde PHP al Google Calendar (versión actual) de una cuenta de gmail, tanto para consultar, insertar, modificar o ...
  #1 (permalink)  
Antiguo 12/07/2017, 06:35
 
Fecha de Ingreso: marzo-2005
Mensajes: 18
Antigüedad: 12 años, 7 meses
Puntos: 1
Exclamación Conectar con API de Google Calendar desde PHP

Buenas a todos.

Me gustaría poder acceder desde PHP al Google Calendar (versión actual) de una cuenta de gmail, tanto para consultar, insertar, modificar o borrar eventos y tareas.

La web oficial de la API de Google Calendar es un poco liosa, y la documentación es muy densa.

¿alguien tiene experiencia o me puede indicar que pasos debo seguir?

Un saludo.
  #2 (permalink)  
Antiguo 13/07/2017, 03:11
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.732
Antigüedad: 9 años, 3 meses
Puntos: 2112
Respuesta: Conectar con API de Google Calendar desde PHP

Por lo general, la mejor fuente de consulta es la documentación oficial.

Te parece complicada?, no hay problema, intenta con la guía de inicio rápido y, cuando tengas tu código, regresa aquí, publícalo y cuéntanos qué es lo que no funciona.

Recuerda que en los foros tratamos de ayudar a resolver problemas específicos, para lo genérico te convendría más buscar un tutorial.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 13/07/2017, 11:28
 
Fecha de Ingreso: marzo-2005
Mensajes: 18
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Conectar con API de Google Calendar desde PHP

Buenas tardes. Gracias por tu respuesta Triby

Ya había revisado el enlace que me envías. Seguramente tenga muchas dudas, pero el primer problema que tengo es con la conexión.

Código HTML:
<html>
<body>
<?php
 session_start();
// print_r($_SESSION);
 if(isset($_GET["logout"])){
  session_destroy();
 }
$redirect_uri ='http://192.168.0.60';
    require_once 'vendor/autoload.php';
    $client = new Google_Client();
$client->setClientId('999999999999-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com');
$client->setClientSecret('ytytytytytytytyDKEb_5VvUYifh');
    $client->setRedirectUri($redirect_uri);
$client->addScope('profile');

$client->addScope(Google_Service_Calendar::CALENDAR);


print_r($client->getAccessToken());

    $authUrl = $client->createAuthUrl();
    if (isset($_GET['code'])) {

  $client->authenticate($_GET['code']);
  $_SESSION['access_token'] = $client->getAccessToken();
  header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));

    }
    if (!$client->getAccessToken() && !isset($_SESSION['access_token'])) {
        $authUrl = $client->createAuthUrl();
        print "<a class='login' href='$authUrl'>Conectar</a>";
    }        
   if (isset($_SESSION['access_token'])) {

       print "<a class='logout' href='".$_SERVER['PHP_SELF']."?logout=1'>Salir</a><br>";
      $client->setAccessToken($_SESSION['access_token']);
      $service = new Google_Service_Calendar($client);
  $results = $service->events->listEvents('primary', array());
if (count($results->getItems()) == 0) {
  print "<h3>No hay Eventos</h3>";
} else {
  print "<h3>Proximos Eventos</h3>";
  echo "<table border=1>";
  foreach ($results->getItems() as $event) {
    echo "<tr>";
    $start = $event->start->dateTime;
    if (empty($start)) {
      $start = $event->start->date;
    }
    echo "<td>".$event->getSummary()."</td>";
    echo "<td>".$start."</td>";
    echo "</tr>";
  }
    echo "<table>";


}


    }
?>
</body>
</html> 
El Client-id y el Client-secret estan cambiados.

El error que me da es el siguiente:

Error: redirect_uri_mismatch
  #4 (permalink)  
Antiguo 13/07/2017, 11:47
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.732
Antigüedad: 9 años, 3 meses
Puntos: 2112
Respuesta: Conectar con API de Google Calendar desde PHP

Supongo que $redirect_uri no puede ser una IP... menos si se trata de una local.

La mayoría de APIs requieren que las ejecutes desde un dominio, que normalmente especificas al registrarte para obtener tus datos de cliente (ID, secret).
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 17/07/2017, 02:17
 
Fecha de Ingreso: marzo-2005
Mensajes: 18
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Conectar con API de Google Calendar desde PHP

Buenos días.

Sigo peleando con esto ...

He probado a cambiar la linea por esta:

Código PHP:
$redirect_uri ='http://localhost'
y me muestra el siguiente error:

Error: invalid_client
no registered origin


En el panel de conrol de la API, he incluído la url http://localhost como "'URIs de redireccionamiento autorizados", pero sigue fallando.
  #6 (permalink)  
Antiguo 23/07/2017, 15:10
 
Fecha de Ingreso: enero-2011
Mensajes: 112
Antigüedad: 6 años, 9 meses
Puntos: 4
Respuesta: Conectar con API de Google Calendar desde PHP

Prueba en un hosting gratuito con dominio, con local host no te va a servir.



La zona horaria es GMT -6. Ahora son las 15:14.