Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
CONECTAR Y LISTAR ARCHIVOS DE GOOGLE DRIVE CON PHP
#1
Hola a todos, en esta ocasión voy a hablar un poco sobre APIs y mas específicamente sobre la API de Google Drive, vamos a ver un poco sobre los permisos de la aplicación, las credenciales, para después conectarnos al servicio de Google Drive y hacer un listado de todos los archivos que tenemos en nuestra cuenta.
Antes de nada, que es Google Drive? Para los que no saben, Google Drive es un servicio de Almacenamiento de archivos gratuito por parte de Google y nos ofrece 10 Gigas de almacenamiento gratuito en el cual podemos almacenar archivos, documentos, imágenes, vídeos, etc.
Para que conectarnos a Google Drive? Podemos usar Google Drive desde la aplicación de Google, pero al crear nuestra aplicación que se conecte al servicio de Google Drive podemos acceder a cualquier archivo de Google Drive desde nuestra aplicación y asi se reflejen los datos también en nuestra cuenta de Google Drive y viceversa.
OBTENER LA LIBRERIA DE APIS CLIENTE DE GOOGLE
Usando Git podemos obtener la “API Client Library” de Google, mediante la cual nos podremos conectar a cualquier servicio de Google, siempre y cuando contemos con los permisos de acceso para hacerlo.
git clone -b v1-master https://github.com/google/google-api-php-client.git

Descargamos la librería y ya podemos empezar.
OBTENER LAS CREDENCIALES DE ACCESO
El siguiente paso sera obtener las credenciales de acceso, para ello debemos ir a la consola de desarrollador de google y hacer lo siguiente:
  • Crear un proyecto: Los proyectos nos sirven para hacer conexión a diferentes servicios de Google.

  • Habilitar API: Con el Proyecto creado debemos seleccionar cuales son las APIs a las que tendrá acceso el proyecto.

  • Añadir credenciales: Las credenciales sirven para autentificar la aplicación.
Para usar Google Drive debemos tener credenciales mediante el método oAuth 2.0 y debemos considerar lo siguiente:
  • Nombre de Producto: El nombre de producto es el nombre que se le mostrara al cliente.

  • Tipo de la aplicación: El tipo de la aplicación puede ser: aplicación web, android, aplicación de Chrome, iOs, etc.

  • Nombre: Sirve para identificar entre credenciales, ya que podemos tener muchas credenciales para un mismo proyecto.

  • URI de redireccionamiento autorizada: Muy importante ya que esta dirección sirve para que la aplicación redireccione, si intentamos direccionar de nuestra aplicación a una URI no autorizada entonces tendremos un error.
Una vez hecho estos pasos obtendremos los datos de autenticacion oAuth 2.0 una clave cliente y una clave secreta, las necesitamos las 2 para que la aplicación funcione.
Y ahora vamos al código:


Código:
<?php
session_start();
if(isset($_GET["logout"])){
 session_destroy();
}
   require_once 'google-api-php-client/src/Google/autoload.php';
   $client = new Google_Client();
   // Get your credentials from the console
   $client->setClientId('TU_CLIENT_ID');
   $client->setClientSecret('TU_CLIENT_SECRET');
   $client->setRedirectUri('TU_REDIRECT_URI');
   $client->setScopes(array('https://www.googleapis.com/auth/drive'));
   $authUrl = $client->createAuthUrl();
   if (isset($_GET['code'])) {
       $client->authenticate($_GET['code']);  
       $_SESSION['token'] = $client->getAccessToken();
       header('Location: http://localhost/examples2/googledrive/step1.php');
   }
   if (!$client->getAccessToken() && !isset($_SESSION['token'])) {
       $authUrl = $client->createAuthUrl();
       print "<a class='login' href='$authUrl'>Conectar</a>";
   }        
  if (isset($_SESSION['token'])) {
      print "<a class='logout' href='".$_SERVER['PHP_SELF']."?logout=1'>Salir</a><br>";
      $client->setAccessToken($_SESSION['token']);
     $service = new Google_Service_Drive($client);
     $results = $service->files->listFiles();
     if (count($results->getItems()) == 0) {
       print "No files found.\n";
     } else {
       print "<table border='1'><thead><th>Archivo</th><th>Id</th></thead>";
       foreach ($results->getItems() as $file) {
         printf("<tr><td>%s</td><td> %s</td></tr>", $file->getTitle(), $file->getId());
       }
       print "</table>";
     }
   }
?>

Necesitamos tener las sesiones iniciadas.

Debemos incluir el archivo Google/autoload.php que se encargara de cargar los archivos necesarios para que la libreria de APIs de Google funcione.

Linea 11: Especificamos el Client Id, Linea 12: Especificamos la clave secreta, Linea 13: Escribimos la URI de redireccion.

En la linea 17 a la 22, Google creara una URL para que vallamos a solicitar permiso, despues de ir a esa URL se crear un código y mediante ese código ($_GET[“code”]) se generara un token ($_SESSION[“token”]) mediante el cual podremos hacer solicitudes a Google Drive.

Linea 29 a la 44: Una vez que tenemos el Token entonces lo verificamos, creamos un servicio de Google Drive (Google_Service_Drive) y hacemos el listado de archivos y lo mostramos en forma de tabla.

RESULTADO

[img=644x0]http://evilnapsis.com/wp-content/uploads/2015/12/google-drive-result-644x343.png[/img]

 

CONCLUSIÓN

Este es un ejemplo completo con el que podemos empezar a explorar la API de Google Drive con el fin de poder conectar nuestras aplicaciones con la nube.

Aprovechare que me estoy metiendo a Google Drive para hacer que todos mis sistemas exporten datos a la nube.
Si tienen dudas o comentarios los esperare y responderé con gusto.
#2
Gracias tio, tiene buena pinta le echare un vistazo a ver de que me sirve.


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Subir multiples archivos o imágenes al servidor y guardarlas con PHP y MySQL cmascreativo 5 478 02-03-2018, 08:08 AM
Último mensaje: easy english
  [Aporte] Google Made With Code carlsmartg 3 414 29-05-2017, 08:11 PM
Último mensaje: brettavz
  Como subir Archivos, Imagenes PHP MysQL gassip 0 1,693 24-10-2016, 06:59 AM
Último mensaje: gassip
  GOOGLE MAPS API V3: INTRODUCCION khristia 2 465 16-08-2016, 08:28 PM
Último mensaje: efbsfcd
  GOOGLE CHARTS: INTRODUCCION A LA VISUALIZACION DE DATOS, GRAFICAS, MAPAS Y MAS khristia 2 609 16-08-2016, 08:27 PM
Último mensaje: efbsfcd
  Gestor de Archivos ElFinder gassip 6 722 03-08-2016, 12:16 AM
Último mensaje: Jouser
  No se puede cargar archivos de DBF a JIRA en Windows Aguinigaje 2 525 02-04-2016, 06:41 PM
Último mensaje: DaveNPlay
  Subir multiples archivos o imágenes al servidor y guardarlas con PHP y MySQL cmascreativo 1 1,249 18-02-2016, 09:55 PM
Último mensaje: index
  [Duda] Ayuda para añadir nueva recaptcha de google fercol 9 819 13-12-2015, 02:31 PM
Último mensaje: fercol
  ¿ por que google chrome es incomtaible con java a partir del 2015? dormio 0 316 30-11-2015, 01:29 PM
Último mensaje: dormio



Usuarios navegando en este tema: 1 invitado(s)