Hola el otro día vi en el blog de Ivan López como usaba las alarmas del google calendar, para enviarse SMS al móvil con ‘alertas’, y así poder tener controlado sus servidores.
El ‘problema’, es que esta en java, así que decidí hacer lo mismo pero en php, para que mas gente pudiese usarlo.
El modo de empleo es el mismo, necesitas PHP 5.1.4 o superior (son las necesarias para usar la API) y las librerías ZEND de Gdata.
Para mas información del uso de la API se puede mirar directamente a la web de google code.
/*
** Generador de alertas sms a traves de google
** Basado en el de Ivan Lopez (lopezivan.blogspot.com)
** Elias Badenes, 2007
** elias (at) badenes (dot) es
*/
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
function crearAlerta($cliente, $texto) {
$dia = date('Y-m-d');
$hIni = date('H:i', strtotime('now +6 minutes'));
$hFin = date('H:i', strtotime('now +7 minute'));
$gdataCal = new Zend_Gdata_Calendar($cliente);
$evento = $gdataCal->newEventEntry();
$startDate = $dia;
$endDate = $dia;
$tzOffset = '+02'; //en verano '+02' en invierno '+01'
$startTime = $hIni;
$endTime = $hFin;
//asigno el texto
$evento->title = $gdataCal->newTitle($texto);
//Asigno el tiempo
$cuando = $gdataCal->newWhen();
$cuando->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00";
$cuando->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00";
//alerta sms
$metodo = 'sms'; //alert, email o sms
$alerta = $gdataCal->newReminder();
$alerta->setMinutes(5);
$alerta->setMethod('sms');
$cuando->setReminders(array($alerta));
$evento->when = array($cuando);
echo 'Insertando Alerta: '.$texto."n";
$a = $gdataCal->insertEvent($evento);
}
if(count($argv) < 4) {
echo "Uso: $argv[0] <usuario> <password> <texto>n";
die();
}
$usuario = $argv[1];
$password = $argv[2];
$texto = '';
$argc = count($argv);
for( $i=3; $i>$argc; $i++) {
$texto .= $argv[$i].' ';
}
$servicio = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
$cliente = Zend_Gdata_ClientLogin::getHttpClient($usuario, $password, $servicio);
crearAlerta($cliente, trim($texto));
Espero que lo disfruteis.