Integración de Google Calendar con PHP. Parte 1.

Escrito por Martin GOnzalez el Viernes 31 de Octubre de 2008 a las 19:09hs

Google Calendar tiene la ventaja no s?lo de hacer m?s sencillo el compartir noticias sobre diferentes eventos, sino tambi?n de organizar invitaciones y respuestas, as? como manejar diversos tipos de eventos. Con esta API es posible construir m?s f?cilmente nuevas aplicaciones en relaci?n con la informaci?n almacenada en calendarios p?blicos y privados.De la misma forma, puede accederse a ella a trav?s de cualquier toolkit de desarrollo compatible con XML y tiene librer?as para muchos lenguajes de programaci?n, entre los que se cuenta PHP.

Veamos ahora algunas cuestiones espec?ficas de la API Google Calendar. Para empezar, hay que se?alar que trabaja aceptando solicitudes de HTTP que contienen una o m?s entradas codificadas en XML y devolviendo respuestas tambi?n en XML que pueden ser parseadas en cualquier cliente XML-aware. Con el Google Calendar, la respuesta siempre consta de un ?feed? en ATOM o RSS que contiene la informaci?n solicitada.

Un feed t?pico de Google Calendar incluye informaci?n m?s que suficiente para construir una aplicaci?n relevante. Para ver un ejemplo, dentro de tu cuanta de Google Calendar, navega hacia las opciones de calendario y busca el link para tu direcci?n URL privada de calendario. Esta URL (recuerda mantenerla en secreto) permite un acceso de s?lo lectura al ?feed? de tu calendario sin previa autorizaci?n, y ser? algo como http://www.google.com/calendar/feeds/userid/private-magicCookie/basic. Pega esta URL en tu navegador Web y probablemente veas algo semejante a lo que te mostramos a continuaci?n:


Cada ?feed? del Calendario se abre con un elemento . Este, a su vez, contiene un elemento , el cual posee URLs para diferentes versiones del ?feed?, y otro , que encierra estad?sticas de resumen.
El elemento m?s alejado adjunta uno o m?s elementos , cada uno de los cuales representa un evento del calendario. Cada contiene m?s detalles, incluyendo el t?tulo, descripci?n, fecha de publicaci?n, fecha de la ?ltima actualizaci?n, etc. Estos son representados, respectivamente, con los elementos , <summary>, <published> o <updated>.<br> <br> No te pierdas los siguientes art?culos!<br> <br> <a href="/articulos/integracion-de-google-calendar-con-php-parte-2-recuperar-eventos-agendados-con-simplexml-.htm">Recuperar eventos agendados con SimpleXML</a><br> <a href="/articulos/integracion-de-google-calendar-con-php-parte-3-recuperar-eventos-agendados-con-zend-gdata-client-library-.htm">Recuperar eventos agendados con Zend GData Client Library<br></a><br> <br> </div> <div class="post-meta"> <span class="post-meta-categorias">Categor?as: <a href="articulos/aplicaciones-google-">Aplicaciones Google</a></span> <span class="post-meta-comentarios"><a href="articulos/integracion-de-google-calendar-con-php-parte-1.htm#comentarios">Comentarios (1)</a></span> </div> <div class="adsense-inpost-300x250"> <script type="text/javascript"> //<![CDATA[ <!-- google_ad_client = "ca-pub-4288165125907732"; google_ad_width = 300; google_ad_height = 250; google_ad_format = "300x250_as"; google_ad_type = "text"; //2007-02-28: EGP_POST_300X350 google_ad_channel = "9611869181"; google_color_border = "F2F2F2"; google_color_bg = "F2F2F2"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> //]]> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> </div> <br> <a name="comentarios" id="comentarios"></a> <h1 class="titulo-principal">comentarios</h1> <ol class="post-listado-comentarios"> <li class="" id="comentario2083"> <div style="float:left; margin-right: 8px"></div> <div style="float:left;"> <strong>DaMy_:</strong><br> <div class="post-fecha-comentario"> <a href="articulos/integracion-de-google-calendar-con-php-parte-1.htm#comentario2083" title="">Lunes 03 de Noviembre de 2008 a las 16:45hs</a> </div> </div> <br> <br> <p style="padding-top:14px; padding-bottom: 10px;">Por fin alguien q publica algo de Google Calendar en castellano!!!<br> Google Api´s rules!!!</p> </li> </ol> <h1 class="titulo-principal">agregar comentario</h1> <form action="" method="post" class="formulario"> <p></p> <p><input type="text" name="usuario" id="usuario" value="" size="22" tabindex="1"><label for="author">Nombre (Requerido)</label></p> <p><input type="text" name="email" id="email" value="" size="22" tabindex="2"><label for="email">Email (Requerido. No sera publicado)</label></p> <p><input type="text" name="sitio_web" id="sitio_web" value="" size="22" tabindex="3"><label for="url">Sitio web (Opcional)</label></p> <p><label for="comentario">Comentario</label><br> <textarea name="comentario" id="comentario" cols="86%" rows="7" tabindex="4"></textarea></p> <p>Se permiten las etiquetas HTML <b>, <i> y <p>. Si ingresa alguna direcci?n web o direcci?n de email ser?n convertidos en enlaces autom?ticamente.</p> <label for="texto_captcha_ingresado">Por favor ingrese el c?digo que ve en la imagen...</label><br> <br> <div style="float:left; margin-right:8px"></div> <div style="padding-top:7px"> <input name="captcha_ingresado" type="text" id="captcha_ingresado" size="30"> </div> <br> <br> <p><input name="submit" type="submit" id="submit" tabindex="5" value="Enviar comentario >"></p> </form> </div> <div class="sidebar" id="buscar"> <p class="titulo-sidebar-negro">buscar art?culos</p> <div style="text-align:center"> <form id="buscar_articulos" action="buscador_articulos.php" class="formulario" style="margin:17px 0px 15px 0px" name="buscar_articulos"> <input name="q" type="text" size="25"> <p><input type="submit" value="Buscar"></p> </form> </div> </div> <div class="sidebar"> <div class="adsense-sidebar-125x125"> <script type="text/javascript"> //<![CDATA[ <!-- google_ad_client = "ca-pub-4288165125907732"; google_ad_width = 120; google_ad_height = 90; google_ad_format = "120x90_0ads_al"; //2007-02-28: EGP_SIDEBAR_BLOQUE_120X90 google_ad_channel = "1246156958"; google_color_border = "ffffff"; google_color_bg = "ffffff"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> //]]> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> </div> </div> <div class="sidebar"> <p class="titulo-sidebar-naranja">art?culos<br> <br> <a href="/articulos/net" class="style5">TUTORIALES .NET <span class="style7">( NEW )</span><br> <span class="style8">TUTORIAL VISUAL B. 6.0<br></span><br></a> <a href="/articulos/aplicaciones-google-" class="style5">GOOGLE CALENDAR API<br></a> <a href="/articulos/como-integrar-google-maps-en-tu-web.htm" class="style5">GOOGLE MAPS API</a></p> <ul class="categorias"> <li><a href="articulos/net">.NET</a></li> <li><a href="articulos/ajax">Ajax</a></li> <li><a href="articulos/apis">APIs</a></li> <li><a href="articulos/aplicaciones-google-">Aplicaciones Google</a></li> <li><a href="articulos/asp">ASP</a></li> <li><a href="articulos/c-plus-plus">C++</a></li> <li><a href="articulos/css">CSS</a></li> <li><a href="articulos/email-marketing">Email marketing</a></li> <li><a href="articulos/email-marketing">Email marketing</a></li> <li><a href="articulos/facebook">Facebook</a></li> <li><a href="articulos/fireworks">Fireworks</a></li> <li><a href="articulos/flash">Flash</a></li> <li><a href="articulos/flickr">Flickr</a></li> <li><a href="articulos/google">Google</a></li> <li><a href="articulos/html">HTML</a></li> <li><a href="articulos/javascript">Javascript</a></li> <li><a href="articulos/mysql">MySQL</a></li> <li><a href="articulos/navegadores">Navegadores</a></li> <li><a href="articulos/otros">Otros</a></li> <li><a href="articulos/php">PHP</a></li> <li><a href="articulos/proyecto%2083%20Emilio%20Mariscal">proyecto 83 Emilio Mariscal</a></li> <li><a href="articulos/recursos">Recursos</a></li> <li><a href="articulos/seo">SEO</a></li> <li><a href="articulos/servidores">Servidores</a></li> <li><a href="articulos/sitios-web">Sitios Web</a></li> <li><a href="articulos/sobre-el-sitio">Sobre el sitio</a></li> <li><a href="articulos/sql">SQL</a></li> <li><a href="articulos/twitter">twitter</a></li> <li><a href="articulos/visual-basic">Visual Basic</a></li> <li><a href="articulos/web-social">web social</a></li> <li><a href="articulos/windows">Windows</a></li> <li><a href="articulos/xhtml" style="border-bottom-width: 0">XHTML</a></li> </ul> </div> <div class="sidebar" id="suscriptos"> <p class="titulo-sidebar-negro">boletin de novedades</p> <p class="mensaje">Recibi en tu email las ultimas novedades del sitio.</p> <div style="text-align:center"> <form id="newsletter" action="acerca_de/newsletter.php" class="formulario" style="margin:17px 0px 15px 0px" method="post" name="newsletter"> <input name="email" id="email" type="text" size="25" onfocus="javascript: if(this.value=='tu email') { this.value = '' }" value="tu email"><input type="hidden" name="accion" id="accion" value="suscribir"> <p><input type="submit" value="Suscribirse"></p> </form> </div> </div> </div> <div class="sponsors"> <script type="text/javascript" src="includes/swfobject.js"></script> <span class="titulo-sponsor"><a href="acerca_de/publicidad.php">publicidad</a></span> <p></p> <div id="swf-banner" class="logo"></div> <p> <script type="text/javascript"> //<![CDATA[ var so = new SWFObject("images/banners/banner.swf", "swf-banner", "150", "150", "7", "", "0"); so.addParam("wmode","transparent"); so.write("swf-banner"); //]]> </script> <a href="/articulos/facebook" class="style5">API DE FACEBOOK</a><br> <a href="/articulos/aplicaciones-google-" class="style5">GOOGLE CALENDAR API</a><br> <a href="/articulos/como-integrar-google-maps-en-tu-web.htm" class="style5">GOOGLE MAPS API</a></p> <p><a href="/articulos/aplicaciones-google-"><img src="/images/google-apps.jpg" width="150" height="313" border="0"></a></p> <p></p> </div> </div> <div id="footer"> <span style="float:left; padding:8px">El Guru Programador</span> <span style="float:right; padding:8px"><a href="acerca_de/newsletter.php">Boletin de novedades</a> | <a href="acerca_de/publicidad.php">Publicidad</a> | <a href="acerca_de/contacto.php">Contacto</a> | <a href="acerca_de">Acerca de...</a></span> </div> </body> </html>