Conexion de lazarus con api de amazon s3 y google calendar
-
Upload
jose-torres -
Category
Technology
-
view
333 -
download
1
description
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