Crear servicio de aviso por SMS con google calendar y PHP

Voy a explicar como crear un servicio de avisos por SMS con la renovada api de google calendar (la han actualizado hace poco) y PHP.
En el ejemplo explico la creación de una función PHP que nos añade eventos en google calendar con notificación SMS para recibirlos en nuestro móvil vía SMS .

Lo primero es crear una cuenta o loguearnos en google calendar (si tienes una cuenta google para otro servicio también nos sirve).

Una vez dentro clickamos sobre Configuración/Cofiguración de Calendar y luego en la pestaña Configuración para móviles. Una vez verifiquemos nuestro móvil (nos envían un mensaje con un código) ya no tendremos que hacer nada más en google calendar.
*Puedes hacer pruebas en google calendar añadiendo eventos con aviso de notificación por móvil. Te llegará un mensaje con el título del evento, el lugar y la hora 😀

Ahora vamos a utilizar el potencial de google calendar para enviar desde nuestro servidor avisos por SMS.
Por ejemplo cuando deja de hacer ping nuestro servidor, cuando falla el backup, cuando nos hacen un pedido … como ves tiene multitud de aplicaciones.

Tenemos que tener en nuestro servidor instalado Zend Gdata. (link de descarga al final)
Si no quieres cargar los módulos siempre desde PHP.ini puedes hacerlo manualmente cuando te haga falta simplemente incluyendo la ruta donde se encuentra la librería (tal y como explico en el siguiente código)

<?php
// Carga manual de librerías Zend_Gdata
ini_set('include_path', '/ruta hasta las librerías/ZendGdata-1.11.0/library');
require_once ('/ruta hasta las librerías/ZendGdata-1.11.0/library/Zend/Loader.php');
// Declaramos las clases
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
Zend_Loader::loadClass('Zend_Http_Client');
Zend_Loader::loadClass('Zend_Gdata_Extension_When');

// Función para crear evento SMS en Google Calendar
//Título indica el título del SMS; Texto indica parte del cuerpo del SMS;
//Minutos indica la demora del aviso; Email indica el login de la cuenta
//Password indica la contraseña de la cuenta
function crearEventoSMS ($titulo, $texto='', $minutos=5, $email='micuenta@gmail.com', $password='micontraseña') {
        // Nombre del servicio de Google Calendar
	$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
	$client = Zend_Gdata_ClientLogin::getHttpClient($email,$password,$service);

	$gdataCal = new Zend_Gdata_Calendar($client);
	$event = $gdataCal->newEventEntry();
	$event->title = $gdataCal->newTitle($titulo);
        // Añadimos texto
	if($texto!=''){
		$event->where = array($gdataCal->newWhere($texto));
		$event->content = $gdataCal->newContent("$texto");
	}
	// Calculamos la hora de creación del evento con la demora incluida para que nos avise
	$time=time()+$minutos*60;
        // Hora en formato RFC 3339
	$endDate = $startDate = date("Y-m-d", $time);
	$endTime = $startTime = date("H:i", $time);
	$tzOffset = "+01";

	$when = $gdataCal->newWhen();
	$when->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00";
	$when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00";

	// Añadimos el recordatorio SMS
       $reminder = $gdataCal->newReminder();
       $reminder->method = "sms";
       // Tiempo de adelanto (no tiene sentido en el ejemplo actual)
       $reminder->minutes = 0;

	// Aplicamos
        $when->reminders = array($reminder);
        $event->when = array($when);

        // Añadimos el evento a google calendar
        $newEvent = $gdataCal->insertEvent($event);
}
?>

Para añadir notificaciones ya solamente tenemos que llamar a la función (por supuesto debemos incluirla en nuestro código)

<?php
     // Requerimos el archivo de la función
     require_once('ruta_hasta_nuestra_funcion.php');
     // La llamamos
     crearEventoSMS('SinPing');
     // Otra llamada para dentro de 2 horas
     crearEventoSMS('ComprobarPago', 'Tenemos que comprobar pago XXX', 120);
     // Otra llamada para otra cuenta que no es la default
     crearEventoSMS('EncargoOnline', 'El cliente tal tiene avería.', 10, 'fontanero@gmail.com', 'chirigota');     
?>

Espero que les sirva de utilidad 😀

– Descargar Zend Gdata

– Google Calendar

– Documentación Api Google Calendar

Añadir imágenes en los sitemaps

A partir de ahora se podrán incluir imágenes en los sitemaps. Por cada URL en tu sitemap.txt, pudes añadir información adicional sobre imágenes importantes de la página.

No es necesario crear un nuevo sitemap, basta con añadir la información de las imágenes en el sitemap que ya usas de la siguiente forma:

<?xml version=”1.0″ encoding=”UTF-8″?>
  <urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″
   xmlns:image=”http://www.google.com/schemas/sitemap-image/1.1″>
  <url>
    <loc>http://example.com/sample.html</loc>
    <image:image>
        <image:loc>http://example.com/image.jpg</image:loc>
    </image:image>
  </url>
</urlset>

Más información sobre cómo añadir imágenes al sitemap.

Google también tiene un sitemap para vídeos.

Visto en www.adseok.com

Email on Acid – Prueba tu email HTML en varios clientes de correo

Cuando creamos un email en formato HTML estamos corriendo el riesgo de que quien lo recibe no pueda leerlo debido a incompatibilidad entre el formato y el cliente de correo electrónico utilizado.

Gmail, Outlook, hotmail.. son decenas las opciones que nuestros suscriptores pueden usar, por lo que es importante tenerlas en cuenta antes de empezar a enviar nuestro contenido.

emailonacid.com es una herramienta que nos permite visualizar nuestro HTML en 15 programas, estando la opción gratuita limitada a tres: Gmail, Outlook 03 y AOL. La opción no gratuita permite realizar el test completo por solamente un dólar, lo que vale mucho la pena dependiendo de lo crítica que sea la situación.

Una muy buena idea con un modelo de negocio interesante.

Visto en wwwhatsnew.com

10 herramientas SEO hechas por Google

Si los profesionales SEO de todo el mundo se pelean para aparecer en las primeras posiciones de Google al buscar determinadas palabras, nada mejor que usar las herramientas que el propio Google nos proporciona.

La siguiente lista ha sido publicada recientemente en denbagus.net.

Google Webmaster Tools: Imprescindible para conocer el estado de nuestros sitios web dentro de Google. Aquí podemos ver los errores que Google ha encontrado, así como consejos para mejorar la web.

Google Analytics: La principal herramienta de control estadísticos de accesos. Con sus datos podemos tomar decisiones sobre cuál es la mejor estrategia de publicación de contenido.

Google Website Optimizer: Aquí podemos probar diferentes versiones de nuestra web que serán mostradas de forma aleatoria a los visitantes, permitiendo obtener datos suficientes para que podamos tomar decisiones sobre cambios en el diseño.

Google Zeitgeist: Para ver lo más buscado en un año determinado. Puede ayudarnos para conocer las tendencias antes de empezar un nuevo proyecto.

Google Trends: Nos permite conocer lo mucho o poco buscada que es una frase o palabra en Google, permitiendo comparar curvas entre ellas. Sólo se ven las más populares.

Google Insights for Search: Nos permite ver lo buscada que es una frase o palabra, independientemente de su popularidad.

Google Traffic Estimator: Hecha para adwords, nos permite sacar conclusiones sobre las visitas que una palabra determinada genera.

Google Keyword Tool: También hecha para Adwords, nos puede ayudar a elegir las mejores palabras en nuestros textos para atraer más visitas.

Google Search Based Keyword Tool: Otra opción que nos permite encontrar palabras clave en sitios web específicos.

Google Ad Planner: Para obtener datos estadísticos del perfil de los visitantes de cualquier sitio web.

Antes de que enloquezcáis con tantas opciones, recordad la regla número uno: escribid contenido de buena calidad, original y útil. El resto viene con el tiempo.

Visto en wwwhatsnew.com