Conexion de lazarus con api de amazon s3 y google calendar

32
Conectando a Lazarus con las API de Amazon S3 y Google Calendar Josué Alvarado Cantillo

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

Page 1: 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

Page 2: Conexion de lazarus con api de amazon s3 y google calendar

Acoplando a Lazarus con

Amazon S3

Para empezar con nuestro proyecto en

Lazarus, necesitaremos agregar al mismo el

paquete "pl_synapsepkg".

Page 3: Conexion de lazarus con api de amazon s3 y google calendar

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

Page 4: Conexion de lazarus con api de amazon s3 y google calendar

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.

Page 5: Conexion de lazarus con api de amazon s3 y google calendar

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.

Page 6: Conexion de lazarus con api de amazon s3 y google calendar

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.

Page 7: Conexion de lazarus con api de amazon s3 y google calendar

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.

Page 8: Conexion de lazarus con api de amazon s3 y google calendar

Autorización

-Seguidamente pasamos a crear la unidad con

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

Page 9: Conexion de lazarus con api de amazon s3 y google calendar

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 .

Page 10: Conexion de lazarus con api de amazon s3 y google calendar

Lista de buckets

Con las clases anteriores agregadas podemos

declarar las variables con las que trabajaremos

Page 11: Conexion de lazarus con api de amazon s3 y google calendar

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"

Page 12: Conexion de lazarus con api de amazon s3 y google calendar

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.

Page 13: Conexion de lazarus con api de amazon s3 y google calendar

Lista de buckets

Crearemos un 'TXMLDocument' en el que

guardaremos en formato XML el contenido del

stream que previamente habíamos recibido

Page 14: Conexion de lazarus con api de amazon s3 y google calendar

Lista de buckets

Si todo sale bien , podremos ver que el

documento vendrá con el siguiente formato.

Page 15: Conexion de lazarus con api de amazon s3 y google calendar

Lista de buckets

Teniendo el xml , pasamos a recorrer cada

nodo para incluirlo a la lista

Page 16: Conexion de lazarus con api de amazon s3 y google calendar

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.

Page 17: Conexion de lazarus con api de amazon s3 y google calendar

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.

Page 18: Conexion de lazarus con api de amazon s3 y google calendar

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'.

Page 19: Conexion de lazarus con api de amazon s3 y google calendar

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).

Page 20: Conexion de lazarus con api de amazon s3 y google calendar

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.

Page 21: Conexion de lazarus con api de amazon s3 y google calendar

Conectando a

Lazarus con el API

de Google Calendar

Josué Alvarado Cantillo

Page 22: Conexion de lazarus con api de amazon s3 y google calendar

Autorización

Primeramente necesitamos enviar algunos

valores como el correo y la contraseña

incluidos en el "header" para identificarnos.

Page 23: Conexion de lazarus con api de amazon s3 y google calendar

Una vez listo el "Header" con los valores

correctos necesitamos hacer un request, para

esto usaremos el componente 'TidHTTP'

Page 24: Conexion de lazarus con api de amazon s3 y google calendar

Preparar Request

Es necesario indicar al componente algunas

de sus propiedades , como el 'IoHandler' y el

protocolo.

Page 25: Conexion de lazarus con api de amazon s3 y google calendar

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'.

Page 26: Conexion de lazarus con api de amazon s3 y google calendar

Enviar Request

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

siguiente error, que indica que la cuenta no es

válida

Page 27: Conexion de lazarus con api de amazon s3 y google calendar

Agregar un evento

Si todo esta correcto obtendremos la clave de

autorización con la que podemos acceder a

nuestros calendarios.

Page 28: Conexion de lazarus con api de amazon s3 y google calendar

Agregar un evento

Crearemos otro TidHTTp para enviar los los

datos del evento que queremos agregar.

Page 29: Conexion de lazarus con api de amazon s3 y google calendar

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

Page 30: Conexion de lazarus con api de amazon s3 y google calendar

Agregar un evento

Page 31: Conexion de lazarus con api de amazon s3 y google calendar

Agregar un evento

Transformamos el XML en stream para poder

enviarlo,

Page 32: Conexion de lazarus con api de amazon s3 y google calendar

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