En fouinant partout sur le Net, j'ai enfin trouvé un début de piste sur le blog de Macsim.

L'idée m'a paru séduisante, j'ai donc couru l'essayer.


Euh mais j'ai pas de serveur Debian moi !?!

L'utilisation bête et méchante du script ne voulait pas fonctionner correctement chez moi, j'ai donc rusé un peu. Plutôt que d'utiliser les deux classes PHP fournies, j'utilise les API GData du Framework Zend.

Sur Fedora 10, le tout est dispo dans les dépôts. Ça n'était malheureusement pas le cas lors de mes premiers essais avec ma Fedora 9. Je ne vais pas détailler mais c'est contournable grâce à pear et au channel pear.phpmafia.net (malheureusement seule la version 1.5.1 de Zend est dispo, mais ça fonctionne).

Tout d'abord, on installe les API :

# yum install php-ZendFramework-Gdata

Yum s'occupera des dépendances.

Pour ce qui est de Google Agenda, je vous renvoie au blog de Macsim, tout est très bien expliqué.

Personnellement, je me suis contenté d'adapter le script original aux API utilisées et de le placer dans mon répertoire /opt/bin/ une fois complété avec mes identifiants de connexion.

Le dit script est le suivant :

#!/usr/bin/php -q
<?php
/*
** Version sms.php
** Envoie un sms en ajoutant l'évenement 5minutes et 30 secondes plus tard.
** Le texto est envoyé dans les 5 secondes qui suivent l'envoi
*/
 
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
Zend_Loader::loadClass('Zend_Http_Client');
 
##	login
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient('votre_adresse@gmail.com', 'votre_mdp', $service);
$service = new Zend_Gdata_Calendar($client);
 
 
if($argc != 3)
{
	echo "Mauvaise syntaxe:\n php $argv[0] titre message \n";
	exit;
}
else 
{
	$dt = new dateTime();
	$dt->setTimeZone(new DateTimeZone("Europe/Paris"));
 
	// On capture le temps actuel et on decale de 5min30
	$dt->modify('+ 5 minutes + 30 seconds');
	$now = $dt->format(DateTime::RFC3339);
	// On lui ajoute 1 minute pour la fin
	$dt->modify('+ 1 minute');
	$now1min = $dt->format(DateTime::RFC3339);
 
##	create event
$event= $service->newEventEntry();
$event->title = $service->newTitle($argv[1]);
$event->where = array($service->newWhere($argv[2]));
$event->content = $service->newContent($argv[2]);
 
$reminder = $service->newReminder();
$reminder->method = "sms";
$reminder->minutes = "5";
 
$when = $service->newWhen();
$when->startTime = $now;
$when->endTime = $now1min;
$when->reminders = array($reminder);
$event->when = array($when);
 
// Upload the event to the calendar server
$newEvent = $service->insertEvent($event);
}
?>


Et voilà, couplé à mon script upssched-cmd de gestion de l'onduleur, je suis prévenu directement sur mon portable en cas de coupure secteur et aussi en cas de retour..

Normalement, c'est fini les congélateurs à jeter ;-)