Que puedo decir respecto a RTM?
Pues que es una herramienta genial!
Me gusta bastante pues es un entorno sencillo que me ayuda a ordenar mis tareas pendientes, agruparlas por etiquetas, agregarle notas, fechas limite o incluso una url de referencia!
Hace mucho tiempo que la estoy usando (gracias a una recomendación de Gustavo) y debo repetirlo, su simplicidad es excelente.
El problema es que necesitas siempre estar conectado a la página.
A menos claro que via Google Gears permitas que trabaje offline, pero debo confesar que a pesar que el concepto Gears es bueno, no soy muy fanático, mas aun cuando siento que ese tipo de herramientas se amarran a un navegador en particular (es decir, que funcionan completamiente bien con un navegador, y con el resto…)
El asunto es el siguiente:
Hoy llegando del trabajo me pregunté que tan complicado sería hacer un cliente RTM que se integre a mi querido Windows 7.
Asunto complicado? pues les comento que RTM brinda una API la cual pueden consultar en la siguiente dirección.
La documentación es sencilla, presentando la lista de métodos disponibles, los cuales son un claro reflejo de lo que hace un usuario normal frente a RTM (ver tareas, eliminar tareas, etc.)
Lo utilizado para el consumo de servicios (pues estamos hablando de servicios!) inicialmente es vía REST, concepto que personalmente les recomiendo si es que estan interesados en los aspectos generales de arquitecturas y servicios (notan que no digo SOA? en realidad es por algo)
Para poder consumir los métodos, es necesario tener un key, sea personal o comercial, en ambos casos se hace un pedido de la key, inicialmente hice un pedido para uso “no comercial”, la respuesta fue inmediata, me dieron una clave de acceso y otra de verificación de respuestas (es que todas las respuestas que envian los servicios contienen como parte del mensaje, la llave de retorno)
El asunto es que TODOS los métodos disponibles, requieren esta llave.
De por si, si pruebas el test method, pues este se comunica rápidamente y entrega respuesta.
El problema que veo es que el resto de métodos (a excepcion del time) requieren previa autenticación.
Pues claro!
Si quieres que el método te envie tus tareas pendientes, pues tienes que autenticarte!
Ahi viene la duda
Donde pongo el usuario y pwd?
No, no acepta estos parámetros, la autenticación que maneja es vía la key que te envian por correo.
Me puse a revisar los API Kits que recomiendan para C#, específicamente IronCow, aqui un bloque de ejemplo:
1: RestClient client = new RestClient("your api key", "your shared secret");
2: client.AuthToken = GetAuthenticationToken(); //TODO: get authentication token
3:
4: // Have fun!
5: foreach (RawList list in client.GetLists())
6: {
7: Console.WriteLine(list.Name);
8: foreach (RawList tmp in client.GetTasks(list.Id))
9: {
10: foreach (RawTaskSeries series in tmp.TaskSeries)
11: {
12: foreach (RawTask task in series.Tasks)
13: {
14: Console.WriteLine(" - {0}", task.Name);
15: }
16: }
17: }
18: }
Como ven, en la primera línea dice claramente “api key”, es decir, no hay forma de hacer el trabajo via usuario y password. Y segun veo, en la lista de correos de la API, encontré dudas similares, aqui una de ellas.
Mi problema es ese, creo que la API de RTM debería ser mas abierta, en todo caso, puedo continuar construyendo mi cliente de la vaca, lo cual tengo planeado, pero mi idea era tener mi interfaz de inicio de sesión, mínimo no?
Si alguno de ustedes está haciendo algo similar, porfa, me avisa, a ver si lo colgamos en codeplex!!
Saludos, que en unas horas tengo una reunión de planeamiento (no pregunten)
@jersson