Enviar SMS API REST json y Perl. Código fuente de ejemplo

Integrar la API REST Json Perl de Altiria para enviar SMS es sencillo. Si programas en Perl en tu empresa, enviar SMS es tan sencillo como realizar una  llamada a los métodos SMS del interfaz REST Json y así añadir la funcionalidad de envío de SMS con Perl.

Consulta nuestra documentación con las especificaciones técnicas (API SMS), solicita una cuenta de prueba y podrás comprobar directamente la calidad del servicio de nuestra plataforma SMS.

programacion

A continuación encontrarás código fuente de ejemplo  que utiliza los servicios web para enviar SMS API REST json con Perl. Recuerda que este código es sólo un punto de partida para agilizar la integración en tu software, pero se debe personalizar para implementar una adecuada gestión de los posibles códigos de error de manera adecuada a la herramienta o aplicación que se esté desarrollando. 

Si tienes problemas en integración, consulta nuestra página de preguntas frecuentes de integración de envío de SMS.

Código fuente de ejemplo SMS API REST json y Perl

#!/usr/bin/perl

# Copyright (c) 2018, Altiria TIC SL
# All rights reserved.
# El uso de este código de ejemplo es solamente para mostrar el uso de la pasarela de envío de SMS de Altiria
# Para un uso personalizado del código, es necesario consultar la API de especificaciones técnicas, donde también podrás encontrar
# más ejemplos de programación en otros lenguajes de programación y otros protocolos (http, REST, web services)
# https://www.altiria.com/api-envio-sms/

require HTTP::Request;
require LWP::UserAgent;
use JSON;
use strict;
use warnings;

binmode(STDOUT, ":utf8");

sub altiriaSms{

if ($_[3] eq 'true'){
print 'Enter altiriaSms: destinations='.$_[0].', message='.$_[1].', senderId='.$_[2]."\n";
}

try {
#Se fija la URL base de los recursos REST
my $base_url = 'http://www.altiria.net/apirest/ws';

my @array = split(',', $_[0]);

my $json = JSON->new->utf8;

#Se construye el mensaje JSON
#YY y ZZ se corresponden con los valores de identificación del usuario en el sistema.
my $data_to_json = {credentials=>{login=>'YY',passwd=>'ZZ'},
destination=> \@array,
message=>{msg=>$_[1],senderId=>$_[2]}
};

#Se inicia el objeto HTTP
my $request = HTTP::Request->new( 'POST', $base_url.'/sendSms' );
#Se añade el JSON al cuerpo de la petición codificado en UTF-8
$request->header( 'Content-Type' => 'application/json;charset=UTF-8' );
#Se añade el JSON a la petición
$request->content( $json->encode($data_to_json) );

my $lwp = LWP::UserAgent->new;
#Se fija el tiempo máximo de espera de la respuesta del servidor (60 segundos)
$lwp->timeout(60);
#Se consigue la respuesta
my $response = $lwp->request( $request );

my $message = $response->decoded_content;

#El cliente HTTP en caso de timeout devuelve un estado 500 con su correspondiente mensaje
if(index($message, 'timeout') != -1){
die 'Timeout error'; #Se lanza una excepción
}

if ($_[3] eq 'true'){
if ( $response->is_success ) {
print "Código de estado HTTP: ".$response->code."\n";
my $decoded = decode_json($message);
my $altiria_status = $decoded->{'status'};
print "Código de estado de Altiria: " .$altiria_status. "\n";

if($altiria_status eq '000'){#Se procesa la respuesta capturada
print "Cuerpo de la respuesta: \n";
print "details[0]destination: ".$decoded->{'details'}[0]{'destination'}."\n";
print "details[0]status: ".$decoded->{'details'}[0]{'status'}."\n";
print "details[1]destination: ".$decoded->{'details'}[1]{'destination'}."\n";
print "details[1]status: ".$decoded->{'details'}[1]{'status'}."\n";
}else{#Error en la respuesta del servidor
print "Error de Altiria: ".$message."\n";
}
} else {
print "ERROR GENERAL: ".$response->code."\n";
print $message."\n";
}
}
return $message;
};
catch {
print "Error: ".$@->what."\n";
};
}

print "The function altiriaSms returns: ".altiriaSms('346xxxxxxxx,346yyyyyyyy','Mensaje de prueba', '', 'true')."\n";
#No es posible utilizar el remitente en América pero sí en España y Europa
#Utilizar esta llamada solo si se cuenta con un remitente autorizado por Altiria
#print "The function altiriaSms returns: ".altiriaSms('346xxxxxxxx,346yyyyyyyy','Mensaje de prueba', 'remitente', 'true')."\n";

Paga solo por lo que necesitas

Sin cuotas de alta

Sin permanencia

Protocolos de comunicación soportados

La API SMS se puede utilizar con los siguientes protocolos de comunicación:

Países a los que damos servicio

Bandera Mexico

México

Bandera Colombia

Colombia

Bandera Perú

Perú

bandera españa

España

Chile

Chile

+125 países

Características

Descubre las funcionalidades avanzadas de Altiria para el envío de SMS

Remitente SMS

Remitente enmascarado

Estadísticas

Estadísticas

Programación envío SMS

Programación de envíos diferidos

SMS concatenados

SMS largos, más de 160 caracteres

Landing SMS

Editor de landing

SMS Unicode

Unicode. Acentos y otros alfabetos

Eliminar duplicados

Elimina celulares duplicados

SMS personalizados

Textos personalizados

Plantillas SMS

Plantillas de mensajes

Recordatorio citas SMS

Recordatorio de citas

Pruébalo gratis