Conexion de lazarus con api de amazon s3 y google calendar

Post on 05-Jul-2015

333 views 1 download

description

Esta presentación resume el procedimiento para acceder a los buckets de Amazon S3 o crear y leer eventos en Google Calendar con Lazarus, el IDE de Free Pascal.

Transcript of Conexion de lazarus con api de amazon s3 y google calendar

Conectando a Lazarus

con las API de Amazon S3

y Google Calendar

Josué Alvarado Cantillo

Acoplando a Lazarus con

Amazon S3

Para empezar con nuestro proyecto en

Lazarus, necesitaremos agregar al mismo el

paquete "pl_synapsepkg".

Empezar el proyecto

Empezaremos por crear una aplicación , a la

que seguidamente le agregaremos la unidad

"uS3Storage".

El código de esta unidad lo podemos

encontrar en la dirección :

http://pastebin.com/HMLR2a66

Librería uS3Storage

La unidad "uS3Storage" será la unidad más

importante en nuestro proyecto, en la misma se

encuentran las funciones para administrar los

buckets de la nube de Amazon.

Librería uS3Storage

En la unidad podemos encontrar las siguientes

funciones:

•Obtener la lista de Buckets.

•Crear un bucket.

•Descargar un archivo.

•Borrar un bucket.

Entre otras.

Autorización

Para poder acceder a los archivos en la nube

de Amazon necesitamos identificarnos, para

esto empezaremos la conexión dando nuestra

clave privada y pública.

Autorización

Como lo muestra la imagen escribimos la

clave privada de manera encriptada y luego la

desencriptamos con un simple algoritmo.

Hacemos lo mismo con la clave pública.

Autorización

-Seguidamente pasamos a crear la unidad con

la clave pública y privada como parámetros.

Lista de Buckets

Antes de llamar la función para obtener la lista

de buckets , añadiremos a la unidad unas

clases que nos serán útiles .

Lista de buckets

Con las clases anteriores agregadas podemos

declarar las variables con las que trabajaremos

Lista de Buckets bucket

Ya identificados y con las variables

declaradas podemos empezar a utilizar la

funciones del uS3Storage.

Obtendremos una lista de buckets,para esto

usaremos la función "ListBucketItems"

Lista de buckets

La respuesta al request se guardará en el

Memory Stream que habíamos declarado y

enviado como parámetro, en este caso

'theStream'.

Seguidamente pasamos a transformar el

Stream a un formato más entendible para

nosotros.

Lista de buckets

Crearemos un 'TXMLDocument' en el que

guardaremos en formato XML el contenido del

stream que previamente habíamos recibido

Lista de buckets

Si todo sale bien , podremos ver que el

documento vendrá con el siguiente formato.

Lista de buckets

Teniendo el xml , pasamos a recorrer cada

nodo para incluirlo a la lista

Lista de buckets

El algoritmo anterior nos llenara una lista con

el valor "key" de cada nodo que obtuvimos de

la respuesta del request a Amazon.

Otras Funciones

La librería nos ofrece otras funciones que son

son muy simples de entender y utilizar .

Estas funciones por lo general nos pedirán

como parametro el 'BucketName' y el

'ObjectName', que son equivalentes al nombre

de la carpeta y nombre del archivo

respectivamente.

Descargar Objeto

Para descargar un objeto solo tenemos que

mandar como parámetros el nombre del bucket

y el nombre del objeto, y guardar la descarga

en un 'TFileStream'.

Borrar

Borrar un Objeto:

-De igual manera que en 'Descargar', la función

'DeleteS3Object' recibirá como parámetros el

nombre del bucket y el del objeto al cual

eliminará.

Borrar un Bucket:

-El 'DeleteBucket' solo recibirá como parámetro

el nombre del bucket, y nos eliminará el bucket

(utilizar con mucho cuidado).

Crear y subir

Crear Bucket:

Para crear un nuevo bucket solo es necesario

enviar un string el cual será el nombre del

mismo; la función nos devolverá 'true' si tuvo

éxito al agregarlo.

Subir archivo:

En este caso enviaremos: el nombre del bucket

donde se alojará , el nombre del nuevo

objeto,un 'stream' con el nombre del archivo y

un booleano indicando si es binario.

Conectando a

Lazarus con el API

de Google Calendar

Josué Alvarado Cantillo

Autorización

Primeramente necesitamos enviar algunos

valores como el correo y la contraseña

incluidos en el "header" para identificarnos.

Una vez listo el "Header" con los valores

correctos necesitamos hacer un request, para

esto usaremos el componente 'TidHTTP'

Preparar Request

Es necesario indicar al componente algunas

de sus propiedades , como el 'IoHandler' y el

protocolo.

Enviar el Request

Ahora podemos hacer un 'Post' en el que

recibiremos un string con el id de autorización,

la que identificamos con el valor 'Auth'.

Enviar Request

Si la autorización no es correcta no daría el

siguiente error, que indica que la cuenta no es

válida

Agregar un evento

Si todo esta correcto obtendremos la clave de

autorización con la que podemos acceder a

nuestros calendarios.

Agregar un evento

Crearemos otro TidHTTp para enviar los los

datos del evento que queremos agregar.

Agregar un evento

Para poder agregar un evento en el calendario

necesitamos crear un stream con formato XML

con los valores que queremos agregar, las

variables y los valores que reciben se pueden

encontrar en la siguiente dirección: https://developers.google.com/google-apps/calendar/v3/reference/events/insert

Agregar un evento

Agregar un evento

Transformamos el XML en stream para poder

enviarlo,

Agregar un evento

Si llegara a suceder algún problema nos

informaría de el con el siguiente error, que nos

indica que el XML tiene valores incorrectos