Teniendo esto en mente pensé que sería realmente útil poder enviar alarmas al móvil con el estado de los servidores de casa. Así, si normalmente tenemos alguna tarea programada en crontab que nos avisa por email cuando termina mal, algún monitor de los servicios, espacio en los filesystems,... podríamos añadir una llamada a un programa adicional que introdujese un evento en nuestro calendario de google para que nos llegara el aviso por medio de un sms al móvil y así estar informados en todo momento del estado de nuestras máquinas :-).
Pues dicho y hecho, me puse a buscar y lo que encontré no pudo ser mejor. Google proporciona un acceso completo a su API, con ejemplos, foros, y además disponible desde varios lenguajes de programación (Java, .Net, PHP y Python). De todos estos, el que más conozco y con el que más he trabajado (aunque ya haga tiempo que no lo toco demasiado) es Java. Además, tiene la ventaja de que al ser multiplataforma podría monitorizar también máquinas windows.
Me instalé Eclipse y la máquina virtual de Sun 1.5 (ojo que esto es importante, no funciona con la 1.4.2) por medio de un simple apt-get. De la web de google descargué las librerías cliente para java y me puse a probar alguno de los ejemplos. La verdad es que el código es muy sencillo y está muy bien explicado. Hay ejemplos de autenticación, consulta de los eventos del calendario entre determinadas fechas, alta de eventos, borrado, actualización...
Después de realizar un par de pruebas tenía un esqueleto que funcionaba aunque había que afinar. Examinando con más detalle las clases con Eclipse y con unas pocas pruebas posteriores terminé la versión 0.1 que permite insertar un evento en nuestro calendario y recibir un aviso por sms en 1 minuto. Aspectos a tener en cuenta del código:
Y ya, sin más divagaciones, el código:
/*
* Programa para el envío de alarmas por SMS al móvil por medio del API Google Calendar
*
* Iván López Martín
* http://lopezivan.blogspot.com
*
*/
import java.net.URL;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import com.google.gdata.client.calendar.CalendarService;
import com.google.gdata.data.DateTime;
import com.google.gdata.data.Person;
import com.google.gdata.data.PlainTextConstruct;
import com.google.gdata.data.extensions.EventEntry;
import com.google.gdata.data.extensions.Reminder;
import com.google.gdata.data.extensions.When;
public class EnviaSMS {
public static void main(String[] args) {
// Comprobamos los argumentos necesarios: usuario, password y texto del mensaje
if (args.length < 3) {
System.err.println("Uso: EnviaSMS <usuario> <password> <texto>");
return;
}
String userName = args[0];
String userPassword = args[1];
String sms = "";
// El máximo son 57 caracteres
for(int i=2; i<args.length; i++) {
sms = sms + args[i] + " ";
}
sms = sms.trim();
try {
URL feedUrl = new URL("http://www.google.com/calendar/feeds/" + userName + "/private/full");
CalendarService myService = new CalendarService("EnviaSMS");
// Nos autenticamos en google Calendar
myService.setUserCredentials(userName, userPassword);
// Creamos el evento
EventEntry myEntry = new EventEntry();
myEntry.setTitle(new PlainTextConstruct(sms));
Person author = new Person(userName, null, userName);
myEntry.getAuthors().add(author);
// Definimos la zona horaria
TimeZone tz = TimeZone.getTimeZone("Europe/Madrid");
Calendar cal = GregorianCalendar.getInstance();
cal.add(Calendar.MINUTE, 6);
DateTime startTime = new DateTime(cal.getTime(), tz); //6m
cal.add(Calendar.MINUTE, 1);
DateTime endTime = new DateTime(cal.getTime(), tz); //7m
// Definimos la hora de comienzo y de fin del evento
When eventTimes = new When();
eventTimes.setStartTime(startTime);
eventTimes.setEndTime(endTime);
myEntry.addTime(eventTimes);
// Añadimos el recordatorio sólo como SMS y que avise 5 minutos antes
Reminder reminder = new Reminder();
reminder.setMinutes(new Integer(5));
reminder.setMethod(Reminder.Method.SMS);
myEntry.getReminder().add(reminder);
// Enviamos la petición para insertar el evento en el calendario
EventEntry insertedEntry = (EventEntry)myService.insert(feedUrl, myEntry);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Para la ejecución desde la línea de comandos, he creado un pequeño script:
ivan@doraemon:~$ cat enviaSMS.sh
#!/bin/sh
#################################
# Iván López Martín #
# http://lopezivan.blogspot.com #
#################################
SMS_HOME=/home/ivan/workspace/GoogleCalendar
CLASSPATH=$SMS_HOME/lib/activation.jar:$SMS_HOME/lib/gdata-calendar-1.0.jar:$SMS_HOME/lib/gdata-client-1.0.jar:$SMS_HOME/lib/mail.jar:$SMS_HOME/bin
java -classpath $CLASSPATH EnviaSMS $@
ivan@doraemon:~$ ./enviaSMS.sh usuario@gmail.com password "Visita el blog de Iván López. http://lopezivan.blogspot.com"
En nuestro calendario de google aparece el nuevo evento con las opciones que hemos indicado:
Y un minuto después, en el móvil el sms:
Como ya he dicho, se trata de la versión 0.1, aunque me parece que no la voy a modificar mucho más porque lo único que necesito es el envío de los sms. No voy a borrar los eventos del calendario, ni actulizarlos, ni consultarlos desde el programa,...
Cualquiera es libre de modificar el código, usarlo y mejorarlo siempre que por favor respete el comentario del autor y el enlace a este blog. Además, si lo mejoras por favor házmelo saber para poder actulizar este artículo.
Que lo disfrutéis...
72 comentarios:
Me ha parecido muy interesante y de verdad muy, muy útil.
Cuando he leído la entrada he pensado : Esto debería de salir en Menéame. He ido y he visto que ya estaba enviado pero que algunos votos negativos lo habían bloqueado. Una auténtica lástima, porque es una idea buena de verdad.
De todas formas, si se popularizara seguro que pronto lo quitaban, no sé qué será mejor ;-)
Gracias, me alegro de que te guste y te resulte útil. En un próximo artículo pondré el uso que le estoy dando para la monitorización del servidor.
A parte de enviarlo a Meneame, también lo envié a Barrapunto, pero parece ser que no terminó de cuajar. Yo también pienso que es muy útil (no porque lo haya hecho yo), porque puedes saber en cualquier momento cómo están tus servidores. En fin, como dicen por ahí "Barrapunto ya no es lo que era" ;-).
Saludos, Iván.
Genial, muy bueno, gracias...
Gracias Pepe, muy escueto pero muy explicativo!. Me alegro de que te guste y de que te sea útil.
Saludos, Iván.
Genial Ivan!!!! simplemente genial!!!
Fenomenal, isto é increible ;-D
Jose Antonio y Belay, muchas gracias a los dos!. Me alegro de que os haya gustado y de que os pueda resultar útil.
Saludos, Iván.
Con tu permiso, me he tomado la libertad de pasarlo a php para poder usarlo desde mas sitios.
http://elias.badenes.es/2007/07/04/alarmas-sms-gracias-a-google
Saludos y gracias
Hola Errante,
no hay ningún problema. Puse el código para que cualquiera pudiera usarlo y modificarlo a su gusto. Además pedí por favor que se respetaran los créditos y tu lo has hecho. Muchas gracias.
Saludos, Iván.
me ha parecido muy interesante, me gustaria saber en que version del eclipse y que plugins instalaste para que te funcione estas librerias, si es posible me ayudes como configurar la plataforma de desarrollo java eclipse google, espero que me puedas ayudar porque soy nuevo en esto y trato de implementar un calendario en mi aplicacion pero tengo problemas con lineas de codigo como estas
import com.google.gdata.client.*;
import com.google.gdata.client.calendar.*;
import com.google.gdata.data.*;
import com.google.gdata.data.acl.*;
import com.google.gdata.data.calendar.*;
import com.google.gdata.data.extensions.*;
import com.google.gdata.util.ServiceException;
espero me ayudes para poder acabar de implementar mi aplicacion.
Att: Angel Macas
mail
ammacas1@hotmail.com
ammacas1@yahoo.es
Hola Angel Miguel,
te respondo por partes:
* Versión de Eclipse: Version: 3.2.2
Build id: M20070212-1330 (Ubuntu version: 3.2.2-0ubuntu3). Como digo en el artículo la instalé con apt-get
* Plugins: Ninguno adicional.
* Para que te funcionen las librerías lo único que tienes que hacer es descargarlas y desde eclipse añadirlas al proyecto. Para hacerlo:
Botón derecho en el proyecto -> Properties. Opción Java Build Path, solapa Libraries y ahí añades las librerías. Yo tengo añadidas: activation.jar, gdata-calendar-1.0.jar, gdata-client-1.0.jar y mail.jar. Con esas 4 librerías ya no deberías tener ningún problema ni de compilación ni en los imports.
Espero que con esta explicación sea suficiente. Si necesitas algo más no dudes en preguntar.
Saludos, Iván.
Muy buenas
He seguido el articulo y me ha dado problemas a la hora de la compilacion en dos metodos que no se encuentran implementados en las clases.
Las Lineas son estas:
reminder.setMethod(Reminder.Method.SMS);
myEntry.getReminder().add(reminder);
No reconoce ninguna de las dos
Gracias
Hola Pedro,
el método setMethod está implementado en la clase com.google.gdata.data.extensions.Reminder y el método getReminder está implementado en la clase com.google.gdata.data.extensions.BaseEventEntry. Ambas clases se encuentran en la librería gdata-client-1.0.jar que como has visto en el post debes añadir a tu proyecto.
Espero que con esto soluciones tu problema.
Saludos, Iván.
Hola Ivan.
La libreria gdata-client-1.0.jar ya se encuantra incluida en el proyecto y me sigue diciendo lo mismo. No se si será que necesita una mas moderna o hay algo que hacer en l workspace o en el proyect adicional. La liberia la baje de la web de google.
Saludos
Hola de nuevo Pedro,
debes estar haciendo algo mal porque acabo de probar con la última versión de las librerías de google y compila sin problemas. Además, sin esa librería tendrías muchos más errores de compilación. Has añadido el resto de librerías: activation.jar, gdata-calendar-1.0.jar y mail.jar?
En la configuración del proyecto y del workspace del eclipse no he hecho nada adicional que no sea incluir las librerías y utilizar la versión 1.5 del jdk.
Saludos, Iván.
Hola Ivan ...
Esas tres librerias si que estan incluidas, y de igual manera estoy usando la version 1.5 de java ...
No se me ocurre que puede fallar ...
Me puedes indicar el link de donde la bajaste?
Gracias
Siento no poder ayudarte más, los links de los que descargué todas las librerías están en el post original. Ahí puedes encontrarlos todos, tanto las de google como las 2 adicionales de la páginas de Sun.
Saludos, Iván.
Tambien tengo cargado el gdata-client-1.0.jar. Ese tb es necesario, no?
Gracias.
Sí, esa librería también es necesaria.
Saludos, Iván.
OKS, ya he conseguido solucionar eso ...
Ahora tengo oro problema ... jejejejeje
cuando intento ejecutarlo con el script, me dice esto:
Exception in thread "main"
java.lang.NoClassDefFoundError: java
Alguna idea?
Gracias
Hola Pedro,
según el script que puse tienes que definir el path correcto en la variable SMS_HOME y dentro de ese path tiene que existir el directorio lib con los .jar y el bin con el .class. Comprueba que tengas todo bien definido.
Saludos, Iván.
Lo primero: gracias por el script.
Me he permitido el lujo de acoplar el código para un sistema de aviso por SMS de nuevo voicemail en Asterisk.
http://bytecoders.homelinux.com/content/aviso-por-sms-de-nuevo-voicemail.html
Buen trabajo :)
Bytecoders
Hola Bytecoders,
me alegro de que le hayas dado una utilidad al aviso por SMS. Gracias por compartirlo.
Saludos, Iván.
muy bueno lo de los sms ivan
solo tengo una pregunta. Si usas varios moviles, por ejemplo uno poersonal y otro de empresa? es posible que la nota llegue a varios moviles?
espero tu respuesta
miguel
Hola Miguelico,
me alegro de que te haya gustado. Respecto a tu pregunta, la única opción que se me ocurre es que asocies el teléfono de tu empresa a una cuenta que te crees de gmail y utilices mi programa para enviar el mismo aviso 2 veces, cada una con un usuario y password distinto.
Habría que ver si añadiendo el evento a varias personas a la vez llega a los dos.
Saludos, Iván.
Sin embargo en la página:
http://www.google.com/support/calendar/bin/answer.py?answer=37025&query=sms&topic=&type=
dice que NO ES GRATUITO.
Léase lo siguiente:
¿Es gratuito?
Sí, Google Calendar es un servicio gratuito. Sin embargo, si decides recibir notificaciones tales como recordatorios de eventos mediante SMS, es posible que se apliquen las tarifas estándar de tu operador móvil por la recepción de mensajes de texto. Tu operador también puede cobrarte por los mensajes SMS salientes. Si tienes alguna pregunta acerca de la tarifa, por favor, ponte en contacto con tu operador para obtener más información.
Hola Anónimo,
lo que dice el enlace es que es gratuito porque Google no cobra nada. Lo que sí dice es que puede que tu operador móvil te cobre por recibir sms, pero esto último no ocurre en España (creo que en USA sí).
Saludos, Iván.
Hola
Felicidades por tu codigo, aunque yo tambien e encotrado problemas con las librerias, para solucionarlo yo tambien añadi el gdata-core-1.0.jar y se soluciono ;)
Hola David González,
muchas grcias por las felicitaciones y por tu comentario.
Saludos, Iván.
Hola,
Ante todo,muchas gracias por el código, es realmente útil. Pero tengo una duda: ¿se puede configurar tu telefono movil programaticamente de alguna forma, o hay que hacerlo "a mano"?Porque, en el caso de que quieras añadir usuarios (por XML, por ejemplo), lo deseable es que ellos simplemente te dieran su telefono movil, y tu internamente gestionaras todo. Es esto posible?
Muchas gracias!!
Hola Feliun,
no estoy seguro de haber comprendido lo que quieres hacer.
Al principio parace que me preguntas que si puedes desarrollar algún tipo de software para tu móvil. Sin embargo, más adelante lo que parezco deducir es que quieres enviar la notificación por SMS a varios usuarios.
En este segundo caso, creo que sí se podría hacer aunque habría que modificar el programa. A la hora de crear el evento para insertarlo en el calendario, tendrías que añadir como participantes a todas las personas a las que quieres enviar el SMS. Éstas a su vez deberían configurar su cuenta de Google Calendar para recibir SMS como aviso de eventos.
Si no es esto lo que preguntabas, por favor aclarámelo y te intento responder.
Saludos, Iván.
hola,iván
Disculpame, me exprese mal. Mi pregunta es otra. Quiero saber si es totalmente necesario configurar "a mano" la cuenta de google calendar para indicar cual es tu movil. Quiero decir, imaginate que yo te digo mi numero de movil, y tu no sabes nada mas de mi. Podrias enviarme un sms? Podrias configurar desde una aplicacion una cuenta con mi numero de movil, o tendriamos que hacerlo a mano? Mi pregunta es si en la API existe algun metodo para poder configurar una cuenta con un movil sin necesidad de hacerlo a mano.
gracias de nuevo
Hola Feliun,
la asociación del número del móvil a la cuenta Google hay que hacerla a mano. De hecho, una vez que introduces el número de teléfono, google te envía un SMS con un código que tienes que poner en la web para verificar tu identidad.
Así, sin hacer tú nada a mano es imposible que yo tu pudiera enviar un sms. Otra cosa sería lo que te he comentado de añadir el evento contigo como asistente.
Saludos, Iván.
Pues muchas gracias. Es una pena, porque el poder automatizarlo seria un gran avance.
Un saludo
A mi no me ha funcionado, existe algún log donde pueda ver que está ocurriendo, por que no me arroja nigún error
Muchas gracias por tu trabajo
Hola juegossex,
el único log que se muestra es lo que sale por pantalla cuando ejecutas el script. Puedes comprobar en la web de google calendar si el evento se está cargando correctamente en tu calendario. Si es así y no te llega el SMS, el problema es de Google. Si no se carga el evento en el calendario es que puede que haya cambiado algo en la API y tenga que actualizar el programa.
Saludos, Iván.
Buenas Ivan,
antes de nada muchas felicidades por tu trabajo,
tener este servicio en mi central Asterisk seria muy bueno.
Te comento ,
tengo dos consultas que hacerte:
1)Creo que para el envio de sms debo enlazar mi Asterisk con el Google Calendar ,he leido algunos articulos de la empresa Irontec sobre esto,y tengo problemas de compilacion del fichero .rb ,mi pregunta es si controlas algo sobre este lenguaje de programacion,Ruby.
2)Hay algo que no me quedo totalmente claro y es como enlazaria mi movil con Google Calendar,¿este enlaza es gratuito?.
Nada mas ,muchas Gracias y un coordial saludo.
David Escañuela ALonso
Hola davidin,
gracias, me alegro de que te guste y te pueda resultar útil. Te respondo:
1.- No sé nada de ruby ni de Irontec ni si se puede enlazar de alguna manera Asterisk con Google Calendar de "manera nativa".
2.- Para enlazar tu móvil con Google Calendar te debes conectar a Google Calendar y en el menú Settings -> Mobile Setup tienes la opción para hacerlo. Una vez configurado, insertas un evento en tu calendario, activas el recordatorio por sms y esperas a que te llegue el aviso.
Cuando tengas hecho eso podrás utilizar mi script para insertar eventos en tu calendario.
Si lo quieres enlazar con Asterisk tendrás que hacer algún script que según tu criterio introduzca esos eventos en tu calendario para que se te envíen por SMS.
Por último, como comento en el artículo, en España el envío de estos sms es totalmente gratuito.
Saludos, Iván.
Buenas de nuevo Ivan,
la primera pregunta que hize ya la he resuelto,mi intencion era enlazar Asterisk a Google Calendar para recibir llamadas teniendo en cuenta un calendario determinado.
Lo que me gustaria hacer es un enlace de Asterisk con el envio de SMS de forma que en determinado momento se envie un sms a un numero concreto.
Supongo por lo que me comentas que si quiero q se envie a varios numeros diferentes tendre que hacer tantas cuentas en google como numeros quiera ,no es muy optimo pero....pasable.
He seguido los pasos de tu articulo,modifique el directorio de instalacion y la configuracion de Google en el archivo sms_send.php.
No uso FreePBX y nose que hay que modificar en el voicemail.conf,modifique el extensions.conf como te puse en el foro de tu articulo (http://www.bytecoders.homelinux.com/content/aviso-por-sms-de-nuevo-voicemail.html).
No recibo ningun sms ,supongo que la configuracion del correo hace falta.
Lo que te puse del archivo de log es porque se sobreescribe.
Un saludo y gracias por tu atencion.
Hola davidin,
me parece que te has confundido y deberías preguntar esto a bytecoders en su blog. El artículo que enlazas es suyo y él es el experto en Asterisk, yo no sé nada de eso y me temo que no te puedo ayudar.
Yo hice el código java y como ves en los comentarios de este post Errante lo convirtió a php para poderlo usar en su web.
Lo siento pero no te puedo ayudar mucho más con tu configuración.
Saludos, Iván.
Tienes toda la razon Ivan,lo siento por la equivocacion,no obstante, tu ers el que creo la aplicacion para el envio de SMS a traves de Google que al fin y al cabo es lo que me hacia falta,la integracion con Asterisk tengo que afinarla mas ,pero bueno..Muchas Gracias por tu atencion.
Un saludo.
Buenas de nuevo Ivan,
he modificado un poco tu codigo para meterle la duracion del evento por parametros.
Me da un error que he leido en comentarios de arriba que es por el SMS_HOME:
Lo que pasa es que nose que pongo mal, las librerias no hay que cambiarlas de ruta ,solo el .class nuevo supongo ,y eso hago pero sigue dando este error:
Exception in thread "main" java.lang.NoClassDefFoundError: /root/NetBeansProject/SMS/build/classes/sms
Buenas Ivan,
no se cuando podras contestarme pero te comento que tu programilla me funciona si le paso los parametros desde dentro y no desde la ejecucion del .sh .Se que es un problema de path,nose si podras ayudarme ,cree el java en un proyecto pero en el paquete por defecto ,lo compile y copie el .java y el .class en la carpeta SMSGoogle.
Y al ejecutar el .sh me aparecen errores de java.lang ,como java.lang.NoClassDefFoundError o java.lang.ClassLoader.
Si pudieras ayuarme te lo agradeceria .
Hola davidin,
con los paths de java siempre hay problemas al principio :-P. Te copio la salida de un ls -lR para que veas cómo lo tengo configurado:
ivan@doraemon:~/workspace/GoogleCalendar$ ls -lR
.:
total 12
drwxr-xr-x 2 ivan ivan 4096 2008-06-13 20:39 bin
drwxr-xr-x 2 ivan ivan 4096 2007-05-20 01:11 lib
drwxr-xr-x 2 ivan ivan 4096 2007-06-03 00:59 src
./bin:
total 4
-rw-r--r-- 1 ivan ivan 3464 2008-06-13 21:00 EnviaSMS.class
./lib:
total 764
-rw-rw-r-- 1 ivan ivan 55932 2006-04-19 17:11 activation.jar
-rw------- 1 ivan ivan 19874 2007-05-01 01:33 gdata-calendar-1.0.jar
-rw------- 1 ivan ivan 329159 2007-05-01 01:32 gdata-client-1.0.jar
-rw-rw-r-- 1 ivan ivan 356519 2006-04-19 17:13 mail.jar
./src:
total 4
-rw-r--r-- 1 ivan ivan 2648 2008-06-13 21:00 EnviaSMS.java
Espero que te sirva.
Saludos, Iván.
Ya solucione el tema ,era simplemente que en el archivo .sh sobraba "/bin" .Ya envio sms satisfactoriamente jeje,gracias por tu ayuda y un saludo.
Hola,
Soy analfabeto total en lo que concierne a desarrollo Java :p Pero el caso es que tu aplicación me viene de perlas, pero tengo un problema y es que necesito que la conexión que se hace salga a través de proxy.
He probado a incluir esto en el .sh:
java -DproxySet=true -Dhttp.proxyHost=proxy.miproxy.es -Dhttp.proxyPort=8080 -classpath $CLASSPATH EnviaSMS $@
Pero no funciona. No se si es una burrada de todos modos. Tiene fácil solución? o voy llamando a alguien que sepa? xD
Gracias Ivan! :)
Hola Anónimo,
Me alegro de que mi aplicación te pueda resultar útil. Siento no poder ayudarte pero no estoy detrás de un proxy para poder hacer pruebas. Vas a tener que seguir buscando más...
Saludos, Iván.
Muy buen ejemplo, te felicito es muy interesante este tema, me fue de mucha utilidad sigue adelante !!
Hola Jeysson Poquioma,
muchas gracias, me alegro de que te haya sido útil.
Saludos, Iván.
Buenas Iván,
Muy buen trabajo!
Yo he tenido que añadir, a parte de la gdata-core-1.0.jar, la google-collect-1.0.jar. Y la notificación por SMS funcionando en toda regla.
Saludos!
Hola Quim,
gracias! :-D
Las librerías en los casi 3 años que hace que publiqué esto han cambiado, pero como dices, sólo hay que poner las nuevas y a tirar :-).
Saludos, Iván.
Hola Ivan, soy Jim, gracias por tu post, me sirvio de mucho... Ahora yo estoy relacionando el API de Goole Calendar con una aplicacion de Java.
Gracias...
Hola Jim,
gracias a ti por tu comentario :-). Yo también estoy trabajando actualmente con las APIs de Google y este antiguo artículo me ha servido para recordar un poco todo...
Saludos, Iván.
Hola Ivan! Excelente tu trabajo, leer esto me motivo a aprender sobre las Apis de Google.
Sin embargo todavia no pude hacerlo andar,leyendo todo los comentarios, agregue las nuevas librerias...y finalmente compila correctamente. pero al usar los argumentos, me da un error, me ayudas a resolverlo?---
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Maps
at com.google.gdata.wireformats.AltRegistry.(AltRegistry.java:118)
at com.google.gdata.wireformats.AltRegistry.(AltRegistry.java:100)
at com.google.gdata.client.Service.(Service.java:555)
at EnviaSMS.main(EnviaSMS.java:42)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Maps
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 4 more
Muchas Gracias
lo solucione!!!
Muchas gracias!!!
simplemente me faltaba la libreria google-collect-1.0.jar
Hola Ricardo,
me alegro de que te haya gustado :-). Al final lo has descubierto tu sólo y no me ha dado tiempo a decírtelo.
Ten en cuenta que este artículo es de hace más de 3 años, por lo que las librerías se han actualizado y también lo han hecho las dependencias. Por eso inicialmente no era necesario incluir esa librería.
Saludos, Iván.
Hola Iván,
Si utilizo la notificación por email funciona correctamente, pero lo que es el sms (es decir, tu código copiado y pegado) no llega. En google está todo bien configurado, mi móvil indicado y activado, pero nada, que no llega. He utilizado todos los .jar que habéis mencionado posteriormente en los comentarios y ni por esas. Supongo que como bien dices será un problema de Google, pero se me hace raro, la verdad.
Gracias por el script, es la bomba.
Hola,
@Eneko: Has probado a crear un evento desde la interfaz web de Google Calendar indicando que quieres que te avise por SMS?. En ocasiones los SMS no llegan o tu operador no los envían. Ahora creo que ya no pasa, pero hace tiempo con operadores como Simyo y Masmovil no llegaban los SMS de Google.
Saludos, Iván.
Excelente noticia sobre el uso de los sms y que mejor que utilizarlos gratis, yo lo he usado desde mexico y mi compañia de celular es movistar, pero aun sin saldo me llegan las notificaciones a mi cel, yo lo estoy tratando de implementar en php pero aqui en mexico no funciona con la compañia de telefonia telcel, eso quita bastante ventaja de usarlo, pero me parece un increible recurso para la telefonia movistar, saludos
Me pueden pasar el ejemplo porfas se los agradecería mucho, gracias!
Hola Iván, muy buen aporte. Lo estoy usando para enviar eventos (citas, convocatoria de reunión) pero tengo un problema con los usuarios de hotmail y los que usan como cliente de correo outlook. En el calendario de hotmail y outlook no se estan viendo los eventos agendados. Agradezco me cuentes si se te ocurre algo.
Saludos.
Muy gran aporte, gracias! Esta tarde lo pruebo :)
Felicitaciones Iván y muchas gracias! A pesar de que ya pasaron varios añitos sigue siendo muy útil para todos. Saludos desde Peru :D
Muchas gracias a todos por vuestros comentarios :-)
Saludos, Iván.
Un trabajo excelente, pero creo que ya no funciona, google detecta que es un "bot" y lo rechaza, luego te manda un sms informándote de un posible intento de hackeo. ¿Alguna idea para solucionarlo?.
Gracias y saludos: Luis.
Hola Luis Miguel,
gracias por el aviso. Lo probaré cuando tenga un hueco. Es probable que haya que utilizar nuevas versiones de las librerías y hacer algún cambio. Es un artículo que tiene ya casi 7 años; mucho ha durado :-)
Saludos, Iván.
Hola Iván, te agradecería mucho si vieras la forma de adaptar este trabajo a las librerías nuevas, porque esas que utilizaste ya no funcionan. Soy estudiante de Ingeniería en Sistemas de Información y tengo que realizar un trabajo donde utilicemos la API de Google Calendar con Java y NetBeans, y no he podido dar con la solución adecuada. Desde ya muchas gracias!
No lo consegui!
buxade.java@gmail.com
password
Nueva Cita
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet.copyOf([Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet;
at com.google.gdata.wireformats.AltFormat$Builder.setAcceptableTypes(AltFormat.java:399)
at com.google.gdata.wireformats.AltFormat$Builder.setAcceptableXmlTypes(AltFormat.java:387)
at com.google.gdata.wireformats.AltFormat.(AltFormat.java:49)
at com.google.gdata.client.Service.(Service.java:558)
at EnviaSMS.main(EnviaSMS.java:48)
Hola a todos:
Quiero dar una respuesta y formular una pregunta:
La respuesta es para el usuario que ha dicho quegoogle detecta que es un bot y ya no funciona.
Para solucionar eso, hay que crear una clave de aplicación en tu cuenta de google. Yo crearía una cuenta nueva para pruebas.
Y la pregunta es a ver si sigue funcionando el invento.
En la actualidad hay infinidad de códigos php que hacen esto, la mayoría usan las librerías zend.
Yo usaba uno de esos códigos que hay por la red y andaba perfecto, pero hace unas semanas dejó de funcionar. Tengo mucho interés en saber si le sigue funcionando a alguien, para descartar algún problema en mi server.
Muchas gracias.
ME estoy riendo solo de mi mismo :) porque ese usuario fui yo, jaja y ni me acordaba que lo había posteado. En fin, que como se puede deducir, solucioné ese problema usando claves de aplicación, pero dejó de funcionar ya.
Hola,
es una pena que ya funcione pero ahora mismo me resulta prácticamente imposible poder dedicarle tiempo a probar una solución alternativa.
Lo siento.
Saludos, Iván.
Hola, soy estudiante de la carrera de computación e informática y estoy intentando insertar un evento a 2 cuentas, desde un formulario de java hecho en eclipse.
Actualmente he estado investigando en la misma página de google calendar pero me sale error en el código con DateTime y EventDateTime.
Por favor si alguien me pudiera ayudar se lo agradecería.
Publicar un comentario