Google Docs. Programació amb les API
Referències i Introducció
Developers Guide Overview:
Client Libraries (llenguatges de programació amb què podem programar):
List API:
Spreadsheets API:
- http://code.google.com/intl/es-ES/apis/spreadsheets/
- video: http://www.youtube.com/v/HUxxoFeJ0VA?version=3&feature=player_embedded
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:
- Photos.php -> accedim a la Photos API demo page (àlbums de Picassa)
- Calendar.php -> llista els calendaris que tens en el Google Calendar
També tenim codi php relacionat amb Youtube
- http://localhost/ZendGdata-1.11.11/demos/Zend/Gdata/YouTubeVideoBrowser/
- http://localhost/ZendGdata-1.11.11/demos/Zend/Gdata/YouTubeVideoApp/ (si poses Videos from a specific user i poses com a usuari JoanilloMediaArt podràs veure els videos del professor).
- http://localhost/ZendGdata-1.11.11/demos/Zend/Gdata/BooksBrowser
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