OSAP

De Open movilforum wiki

Tabla de contenidos

[editar] ¿Qué es OSAP?

Wiki del proyecto OSAP acrónimo de Open.Movilforum SMS API in PHP, es decir, una implementación del Interfaz_HTTP_de_envio_de_SMS y de la API_Recepción_de_mensajes_de_texto

OSAP está implementado como un gateway más de la clase PEAR::Net_SMS.

La ventaja de usar OSAP es que te olvidas de tener que realizar la petición HTTP para enviar SMS y de procesar el mensaje de correo electrónico cuando recibes un email

[editar] Instalación

OSAP se distribuye en un fichero comprimido en el que puedes encontrar los dos ejemplos de más abajo así como todas las extensiones PEAR que necesitas para que funcione.

Para instalarlo, sólo tienes que

  1. Bajar los fuentes de la página de descargas de OSAP
  2. Descomprimir el fichero con los fuentes de OSAP.
  3. En el código fuente de tu aplicación, añadir al path el directorio pear creado al descomprimir el fichero con los fuentes de OSAP.

En el siguiente fragmento de código puedes ver cómo añadir al path el directorio ./pear.

$delim = (PHP_OS == "WIN32" || PHP_OS == "WINNT") ? ';': ':';
ini_set('include_path', ".{$delim}./pear/" );
unset ($delim);

Además, en el fichero con los fuentes de OSAP se incluyen estos dos ejemplos en los que se muestra cómo enviar y recibir SMS usando OSAP:

[editar] Ejemplo de Envío de SMS

Para enviar un SMS usando la Interfaz_HTTP_de_envio_de_SMS de Open.Movilforum tendrías que crear una petición HTTP con los campos los campos del post, etc... con OSAP sólo tienes que crear un objeto de la clase Net_SMS e invocar al método send.



//Set Paths
$delim = (PHP_OS == "WIN32" || PHP_OS == "WINNT") ? ';': ':';
ini_set('include_path', ".{$delim}./pear/" );
unset ($delim);


require_once 'Net/SMS.php';

$sms = new Net_SMS();

//Fill required Params for sending:
//
// 	1.- SenderNumber is your Phone number. You need to be a Movistar Spain Client
//  2.- SenderPassword is obtained sending a SMS to 770 number with the text "CLAVE"

$params = array('SenderNumber' => '600123456',
				'SenderPassword' => '123456'
				);
		
//Now Create a Movistar SMS instance
$movistar_sms = $sms->factory('movistar_spain_http',$params);

//Build message
//	id = Not used
//	to = array of recipients
//	message = text message
$message = array( 'id' => '', 'to' => array('+34600123456','600123456'), 'text' => 'Txt Message');

//Send It NOW!!!!!!
echo '< pre >';
//echo '---- before send \n';
$r = $movistar_sms->send(&$message);

//echo '---- After send \n';
print_r ($r);


[editar] Ejemplo de Recepción de SMS

Sin OSAP, para poder procesar los mensajes recibidos tendrías que revisar todos los mensajes de las cuentas de correo, ver cuáles son de Open.Movilforum y obtener los datos del cuerpo de cada uno de los correo electrónicos.

Con OSAP sólo tienes que crear el objeto NetSMS, pedirle que te diga si se ha recibido algún email procedente de un SMS e invocar al uno de los métodos de obtención de SMS, como getAllSMS().

//Set Paths
$delim = (PHP_OS == "WIN32" || PHP_OS == "WINNT") ? ';': ':';
ini_set('include_path', ".{$delim}./pear/" );
unset ($delim);


require_once 'Net/SMS.php';

$sms = new Net_SMS();

//Fill required Params for Receiving
// NOTE: if your mail server uses tls, use the "tls://" prefix.
// 
//
$params = array('POP3Server' => 'tls://pop.gmail.com',
				'POP3Port' => '995',
				'POP3User' => 'username',
				'POP3Pass' => 'password'
				);
		
//Now Create a Movistar SMS instance
$movistar_sms = $sms->factory('movistar_spain_http',$params);

echo '< pre >;

$r = $movistar_sms->countSMS();
if (PEAR::isError($r)) {
	print_r($r);
}

echo 'Number of Messages: ' . $r . ;
echo " <br /><b>Message Id List:</b> <br />; 
print_r($movistar_sms->getSMSIds());
echo '<br /><b>Messages</b><br />';
print_r($movistar_sms->getAllSMS());
echo '< /pre >';


[editar] Más información - Enlaces

  1. Página del Proyecto Open.Movilforum - Spanish only
  2. Página del Proyecto en Code.Google - English only
  3. Descargar código fuente | Download Source Code