Google Docs. Programació amb les API

De Wikijoan
Dreceres ràpides: navegació, cerca

Referències i Introducció

Developers Guide Overview:

Client Libraries (llenguatges de programació amb què podem programar):

List API:

Spreadsheets API:

Access Google's Data APIs from your PHP 5:

NOTA (actualització febrer 2013)

Les Google Documents API estan deprecated, doncs ara el concepte actual és Google Drive, que té les seves API:

Per tant, aquest és el document actual per fer la pràctica el curs 2012-2013.

Com veiem, podem utilitzar diferents llenguatges de programació. Concretament, a nosaltres ens interessa PHP, i d'aquesta manera podem integrar Google Drive dins les nostres aplicacions PHP:

Desenvolupament

Farem una pràctica accedint a les API de Google des de PHP. Seguirem: Access Google's Data APIs from your PHP 5:

Descarreguem Zend Gdata versió 1.11.11

INSTALLATION
------------

Zend Framework requires no special installation steps. Simply download
the framework,
extract it to the folder you would like to keep it in, and add the
library directory
to your PHP include_path. To use components in the extras library, add
the extras/library
directory to your PHP include_path, as well.
If you would like to use Zend_Tool, simply add bin/zf.bat (for Windows) or
bin/zf.sh (for anything else) to your system executable path.

Com que aquesta llibreria que hem descarregat conté exemples PHP, anem a fer-los funcionar. El primer que hem de fer és localitzar el directori arrel del nostre servidor Apache (http://localhost, allà on posa It works!), i descomprimir en aquest directori la llibreria.

Hem de veure com podem navegar per la carpeta demos/:

Em centro en el document Docs.php. L'obrim en un editor de text per poder veure el codi, i l'executem en el navegador web.

Segur que no funciona, sense fer res no podem carregar la pàgina Docs.php. Allò bo és tenir configurat l'Apache per veure els warnings:

Warning: require_once(Zend/Loader.php) [function.require-once]: failed
to open stream: No such file or directory in
/var/www/ZendGdata-1.11.11/demos/Zend/Gdata/Docs.php on line 50

Si no veiem els warnings i la pàgina es mostra en blanc podem consultar el fitxer /var/log/apache2/error.log per veure la mateixa informació:

$ joe /var/log/apache2/error.log
...
[Fri Feb 10 00:48:45 2012] [error] [client ::1] PHP Fatal error:  require_once(): Failed opening required 'Zend/Loader.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/ZendGdata-1.11.11/demos/Zend/Gdata/Docs.php on line 50, referer: http://localhost/Zend

Tot això ja està explicat a Llenguatges_de_guions_de_servidor._PHP._Introducció#Gesti.C3.B3_dels_errors_i_logging

Veiem que dins el codi tenim la línia:

require_once 'Zend/Loader.php';

i aquesta és la llibreria que no sap trobar. Per tant, com diu les instruccions d'instal.lació, hem d'incloure la llibreria en el PHP include_path.

El fitxer Loader.php està a /var/www/ZendGdata-1.11.11/library/Zend, i per tant el nostre include_path està a:

include_path = ".://var/www/ZendGdata-1.11.11/library"

Això es pot fer de vàries maneres, però el més normal és editar el fitxer php.ini

$ locate php.ini
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini

el segon fa referència a CLI (executar PHP en mode línia de comandes, i també el farem servir més avall).

$ sudo joe /etc/php5/apache2/php.ini
$ sudo joe /etc/php5/cli/php.ini

i afegim la línia

include_path = ".://var/www/ZendGdata-1.11.11/library"

Reiniciem l'Apache

$ sudo /etc/init.d/apache2 restart

i ara ja desapareix el warning i ens redirigim a Google Accounts per donar permís d'accés. Un cop donat permís, l'aplicatiu PHP ens deixa navegar pels nostres documents.


El fitxer Docs.php també el podem accedir per línia de comandes. com veiem en el codi:

function displayHelp($executable)
{
   echo "Usage: php {$executable} <action> [<username>] [<password>] " .
       "[<arg1> <arg2> ...]\n\n";
   echo "Possible action values include:\n" .
       "retrieveAllDocuments\n" .
       "retrieveWPDocs\n" .
       "retrieveSpreadsheets\n" .
       "fullTextSearch\n" .
       "uploadDocument\n";
}
$ cd /var/www/ZendGdata-1.11.11/demos/Zend/Gdata
$ php Docs.php retrieveAllDocuments joanqc ****
prova 1a
primera_prova
MP_UF_Profes_2011_2012
Untitled document

Per fer un upload d'un document

$ php Docs.php uploadDocument joanqc **** /home/joan/vocabulari_angles.txt
New Document Title: /home/joan/vocabulari_angles.txt

Més demos que hi ha a la carpeta ZendGdata-1.11.11/demos/Zend/Gdata:

També tenim codi php relacionat amb Youtube

Recordem finalment de què va tot això. Es tracta d'integrar dins dels teus projectes i aplicacions PHP els serveis de Google, com per exemple Google Docs o Google Calendar. Si una empresa utilitza Google Docs o Google Apps de forma corportativa o generalitzada, li pot interessar aquesta integració en les aplicacions que desenvolupen en el departament de software.

Entrega

Recorda la normativa per entregar les pràctiques al Moodle: ASIX-M09-IAW#Normativa_d.27entrega_de_les_pr.C3.A0ctiques_al_Moodle.

Per demostrar que has fet allò que es pretén i que has arribat allà on es pretén, n'hi haurà prou en fer unes captures de pantalla. Recorda d'escriure en el fitxer LLEEIX-ME els dubtes, problemes, èxits i fracassos que t'has trobat.

opcional: Spreadsheet Google API


creat per Joan Quintana Compte, febrer 2019

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines